@evatril/video-templates 2.0.11 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/Invitations/Elements/BlowingLeaves28012026.jsx +2 -2
- package/src/Invitations/Elements/BottomSideFrames20012026.jsx +122 -0
- package/src/Invitations/Elements/Butterflies20012026.jsx +4 -4
- package/src/Invitations/Elements/CoupleWalk20012026.jsx +2 -3
- package/src/Invitations/Elements/CurtainTransition20012026.jsx +79 -0
- package/src/Invitations/Elements/DucksFrame05022026.jsx +1 -2
- package/src/Invitations/Elements/{FloatingFlowersBottom.jsx → FloatingFlowersBottom05022026.jsx} +2 -3
- package/src/Invitations/Elements/FlowerReveal_TR_BL_28012026.jsx +2 -3
- package/src/Invitations/Elements/FlowersSide20012026.jsx +3 -72
- package/src/Invitations/Elements/GaneshBorder28012026.jsx +2 -4
- package/src/Invitations/Elements/GroomBrideLoveScene20012026.jsx +6 -7
- package/src/Invitations/Elements/HangingJumar05022026.jsx +1 -2
- package/src/Invitations/Elements/HangingLamp05022026.jsx +1 -2
- package/src/Invitations/Elements/HeartFlight28012026.jsx +1 -78
- package/src/Invitations/Elements/{HoldSlide.jsx → HoldSlide03022026.jsx} +1 -1
- package/src/Invitations/Elements/LetterReveal28012026.jsx +102 -14
- package/src/Invitations/Elements/OpeningGate20012026.jsx +3 -3
- package/src/Invitations/Elements/PageFlipTransition28012026.jsx +84 -0
- package/src/Invitations/Elements/SmoothReveal20012026.jsx +62 -0
- package/src/Invitations/Elements/WordReveal28012026.jsx +45 -7
- package/src/Invitations/Frames/F03022026_01.jsx +1 -1
- package/src/Invitations/Frames/F03022026_02.jsx +9 -10
- package/src/Invitations/Frames/F03022026_03.jsx +1 -1
- package/src/Invitations/Frames/F03022026_04.jsx +1 -1
- package/src/Invitations/Frames/F03022026_05.jsx +11 -8
- package/src/Invitations/Frames/F05022026_01.jsx +1 -2
- package/src/Invitations/Frames/F05022026_02.jsx +7 -14
- package/src/Invitations/Frames/F05022026_03.jsx +4 -5
- package/src/Invitations/Frames/F05022026_04.jsx +10 -14
- package/src/Invitations/Frames/F20012026_01.jsx +29 -136
- package/src/Invitations/Frames/F20012026_02.jsx +148 -75
- package/src/Invitations/Frames/F20012026_03.jsx +74 -193
- package/src/Invitations/Frames/F20012026_04.jsx +54 -122
- package/src/Invitations/Frames/F28012026_01.jsx +7 -8
- package/src/Invitations/Frames/F28012026_02.jsx +51 -53
- package/src/Invitations/Frames/F28012026_03.jsx +60 -61
- package/src/Invitations/Frames/F28012026_04.jsx +65 -70
- package/src/Invitations/Frames/F28012026_05.jsx +40 -11
- package/src/Invitations/Themes/T03022026_01.jsx +12 -17
- package/src/Invitations/Themes/T05022026_01.jsx +23 -19
- package/src/Invitations/Themes/T20012026_01.jsx +79 -66
- package/src/Invitations/Themes/T28012026_01.jsx +32 -25
- package/src/compositions.jsx +8 -8
- package/public/Fonts/DancingScript-VariableFont_wght.ttf +0 -0
- package/public/Fonts/GreatVibes-Regular.ttf +0 -0
- package/public/Fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf +0 -0
- package/public/video-images/03022026-bg-2.webp +0 -0
- package/public/video-images/03022026-bg-3.webp +0 -0
- package/public/video-images/03022026-bg-4.webp +0 -0
- package/public/video-images/03022026-bg-5.webp +0 -0
- package/public/video-images/03022026-bg.webp +0 -0
- package/public/video-images/03022026-krishnaradha-2.webp +0 -0
- package/public/video-images/03022026-krishnaradha-4.webp +0 -0
- package/public/video-images/03022026-krishnaradha-5.webp +0 -0
- package/public/video-images/03022026-krishnaradha.webp +0 -0
- package/public/video-images/05022026-Duck.webp +0 -0
- package/public/video-images/05022026-Flower.webp +0 -0
- package/public/video-images/05022026-Ganesh.webp +0 -0
- package/public/video-images/05022026-HangingJumar.webp +0 -0
- package/public/video-images/05022026-HangingLamps.webp +0 -0
- package/public/video-images/05022026-LeftPeacock.webp +0 -0
- package/public/video-images/05022026-Nameplate.webp +0 -0
- package/public/video-images/05022026-bg-2.webp +0 -0
- package/public/video-images/05022026-bg-3.webp +0 -0
- package/public/video-images/05022026-bg-4.webp +0 -0
- package/public/video-images/05022026-bg.webp +0 -0
- package/public/video-images/20012026-bg.png +0 -0
- package/public/video-images/20012026-bg.webp +0 -0
- package/public/video-images/20012026-bride.png +0 -0
- package/public/video-images/20012026-bride.webp +0 -0
- package/public/video-images/20012026-butterfly.png +0 -0
- package/public/video-images/20012026-butterfly.webp +0 -0
- package/public/video-images/20012026-couple-walk.png +0 -0
- package/public/video-images/20012026-couple-walk.webp +0 -0
- package/public/video-images/20012026-curtain-floral.png +0 -0
- package/public/video-images/20012026-curtain-floral.webp +0 -0
- package/public/video-images/20012026-floral-left.png +0 -0
- package/public/video-images/20012026-floral-left.webp +0 -0
- package/public/video-images/20012026-floral-right.png +0 -0
- package/public/video-images/20012026-floral-right.webp +0 -0
- package/public/video-images/20012026-groom.png +0 -0
- package/public/video-images/20012026-groom.webp +0 -0
- package/public/video-images/20012026-opening-gate.png +0 -0
- package/public/video-images/20012026-opening-gate.webp +0 -0
- package/public/video-images/20012026-peacock.png +0 -0
- package/public/video-images/20012026-peacock.webp +0 -0
- package/public/video-images/20012026-tree-left.png +0 -0
- package/public/video-images/20012026-tree-left.webp +0 -0
- package/public/video-images/20012026-tree-right.png +0 -0
- package/public/video-images/20012026-tree-right.webp +0 -0
- package/public/video-images/20012026-wedding-gate.png +0 -0
- package/public/video-images/20012026-wedding-gate.webp +0 -0
- package/public/video-images/28012026-BottomLeftFlower.webp +0 -0
- package/public/video-images/28012026-BottomRightFlower.webp +0 -0
- package/public/video-images/28012026-FlowerBorder.webp +0 -0
- package/public/video-images/28012026-Ganesh.webp +0 -0
- package/public/video-images/28012026-Heart.webp +0 -0
- package/public/video-images/28012026-PinkLeaf.webp +0 -0
- package/public/video-images/28012026-TopBorder.webp +0 -0
- package/public/video-images/28012026-TopLeftFlower.webp +0 -0
- package/public/video-images/28012026-TopRightFlower.webp +0 -0
- package/public/video-images/28012026-bg.webp +0 -0
- package/public/video-images/28012026-border.webp +0 -0
- package/public/video-images/28012026-frame.webp +0 -0
- package/public/video-images/wedding.mp3 +0 -0
- package/public/video-images/wedding2.mp3 +0 -0
- package/src/Invitations/Elements/GaneshGoldenHalo.jsx +0 -90
- package/src/Invitations/Elements/PageFlipTransition.jsx +0 -180
- package/src/Invitations/Elements/PeacockDance20012026.jsx +0 -68
- package/src/Invitations/Elements/SideTrees20012026.jsx +0 -92
- package/src/Invitations/Elements/SmoothRevealFromTop20012026.jsx +0 -32
|
@@ -1,41 +1,127 @@
|
|
|
1
|
+
// import React from "react";
|
|
2
|
+
// import { useCurrentFrame, interpolate } from "remotion";
|
|
3
|
+
|
|
4
|
+
// export const LetterReveal28012026 = ({
|
|
5
|
+
// text = "",
|
|
6
|
+
// start = 0,
|
|
7
|
+
// stagger = 4, // frames between letters
|
|
8
|
+
// }) => {
|
|
9
|
+
// const frame = useCurrentFrame();
|
|
10
|
+
|
|
11
|
+
// return (
|
|
12
|
+
// <>
|
|
13
|
+
// {text.split("").map((char, i) => {
|
|
14
|
+
// const appear = interpolate(
|
|
15
|
+
// frame,
|
|
16
|
+
// [start + i * stagger, start + i * stagger + 10],
|
|
17
|
+
// [0, 1],
|
|
18
|
+
// {
|
|
19
|
+
// extrapolateRight: "clamp",
|
|
20
|
+
// }
|
|
21
|
+
// );
|
|
22
|
+
|
|
23
|
+
// const y = interpolate(
|
|
24
|
+
// frame,
|
|
25
|
+
// [start + i * stagger, start + i * stagger + 10],
|
|
26
|
+
// [15, 0],
|
|
27
|
+
// {
|
|
28
|
+
// extrapolateRight: "clamp",
|
|
29
|
+
// }
|
|
30
|
+
// );
|
|
31
|
+
|
|
32
|
+
// return (
|
|
33
|
+
// <span
|
|
34
|
+
// key={i}
|
|
35
|
+
// style={{
|
|
36
|
+
// display: "inline-block",
|
|
37
|
+
// opacity: appear,
|
|
38
|
+
// transform: `translateY(${y}px)`,
|
|
39
|
+
// }}
|
|
40
|
+
// >
|
|
41
|
+
// {char === " " ? "\u00A0" : char}
|
|
42
|
+
// </span>
|
|
43
|
+
// );
|
|
44
|
+
// })}
|
|
45
|
+
// </>
|
|
46
|
+
// );
|
|
47
|
+
// };
|
|
48
|
+
|
|
1
49
|
import React from "react";
|
|
2
|
-
import { useCurrentFrame, interpolate } from "remotion";
|
|
50
|
+
import { useCurrentFrame, useVideoConfig, interpolate } from "remotion";
|
|
3
51
|
|
|
4
52
|
export const LetterReveal28012026 = ({
|
|
5
53
|
text = "",
|
|
6
54
|
start = 0,
|
|
7
|
-
stagger = 4,
|
|
55
|
+
stagger = 4,
|
|
56
|
+
exitDirection = "left", // left OR right
|
|
8
57
|
}) => {
|
|
9
58
|
const frame = useCurrentFrame();
|
|
59
|
+
const { fps, durationInFrames } = useVideoConfig();
|
|
60
|
+
|
|
61
|
+
const letters = text.split("");
|
|
62
|
+
|
|
63
|
+
const letterAnimDuration = 10;
|
|
64
|
+
|
|
65
|
+
/* ENTRY END */
|
|
66
|
+
const lastEntryEnd =
|
|
67
|
+
start + letters.length * stagger + letterAnimDuration;
|
|
68
|
+
|
|
69
|
+
/* FIXED EXIT SETTINGS */
|
|
70
|
+
const EXIT_TOTAL_FRAMES = Math.floor(fps * 1.5); // last 1.5 sec
|
|
71
|
+
|
|
72
|
+
const exitStart = Math.max(
|
|
73
|
+
durationInFrames - EXIT_TOTAL_FRAMES,
|
|
74
|
+
lastEntryEnd + fps * 0.3
|
|
75
|
+
);
|
|
10
76
|
|
|
11
77
|
return (
|
|
12
78
|
<>
|
|
13
|
-
{
|
|
79
|
+
{letters.map((char, i) => {
|
|
80
|
+
|
|
81
|
+
/* ENTRY */
|
|
82
|
+
const entryDelay = start + i * stagger;
|
|
83
|
+
|
|
14
84
|
const appear = interpolate(
|
|
15
85
|
frame,
|
|
16
|
-
[
|
|
86
|
+
[entryDelay, entryDelay + letterAnimDuration],
|
|
17
87
|
[0, 1],
|
|
18
|
-
{
|
|
19
|
-
extrapolateRight: "clamp",
|
|
20
|
-
}
|
|
88
|
+
{ extrapolateRight: "clamp" }
|
|
21
89
|
);
|
|
22
90
|
|
|
23
|
-
const
|
|
91
|
+
const entryY = interpolate(
|
|
24
92
|
frame,
|
|
25
|
-
[
|
|
93
|
+
[entryDelay, entryDelay + letterAnimDuration],
|
|
26
94
|
[15, 0],
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
95
|
+
{ extrapolateRight: "clamp" }
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
/* EXIT */
|
|
99
|
+
const exitOpacity = interpolate(
|
|
100
|
+
frame,
|
|
101
|
+
[exitStart, durationInFrames],
|
|
102
|
+
[1, 0],
|
|
103
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
30
104
|
);
|
|
31
105
|
|
|
106
|
+
const exitX = interpolate(
|
|
107
|
+
frame,
|
|
108
|
+
[exitStart, durationInFrames],
|
|
109
|
+
[
|
|
110
|
+
0,
|
|
111
|
+
exitDirection === "left" ? -140 : 140
|
|
112
|
+
],
|
|
113
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const finalOpacity = appear * exitOpacity;
|
|
117
|
+
|
|
32
118
|
return (
|
|
33
119
|
<span
|
|
34
120
|
key={i}
|
|
35
121
|
style={{
|
|
36
122
|
display: "inline-block",
|
|
37
|
-
opacity:
|
|
38
|
-
transform: `
|
|
123
|
+
opacity: finalOpacity,
|
|
124
|
+
transform: `translate(${exitX}px, ${entryY}px)`,
|
|
39
125
|
}}
|
|
40
126
|
>
|
|
41
127
|
{char === " " ? "\u00A0" : char}
|
|
@@ -45,3 +131,5 @@ export const LetterReveal28012026 = ({
|
|
|
45
131
|
</>
|
|
46
132
|
);
|
|
47
133
|
};
|
|
134
|
+
|
|
135
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Img, interpolate, Easing
|
|
2
|
+
import { Img, interpolate, Easing } from "remotion";
|
|
3
3
|
|
|
4
4
|
export const OpeningGate20012026 = ({ frame, fps }) => {
|
|
5
5
|
// ⏱ 1 second gate opening
|
|
@@ -31,7 +31,7 @@ export const OpeningGate20012026 = ({ frame, fps }) => {
|
|
|
31
31
|
>
|
|
32
32
|
{/* 🚪 LEFT DOOR */}
|
|
33
33
|
<Img
|
|
34
|
-
src=
|
|
34
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-opening-gate.webp"
|
|
35
35
|
style={{
|
|
36
36
|
position: "absolute",
|
|
37
37
|
bottom: 0,
|
|
@@ -44,7 +44,7 @@ export const OpeningGate20012026 = ({ frame, fps }) => {
|
|
|
44
44
|
|
|
45
45
|
{/* 🚪 RIGHT DOOR */}
|
|
46
46
|
<Img
|
|
47
|
-
src=
|
|
47
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-opening-gate.webp"
|
|
48
48
|
style={{
|
|
49
49
|
position: "absolute",
|
|
50
50
|
bottom: 0,
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {
|
|
3
|
+
AbsoluteFill,
|
|
4
|
+
useCurrentFrame,
|
|
5
|
+
interpolate,
|
|
6
|
+
Easing,
|
|
7
|
+
} from "remotion";
|
|
8
|
+
|
|
9
|
+
export const PageFlipTransition28012026 = ({
|
|
10
|
+
children,
|
|
11
|
+
background,
|
|
12
|
+
sceneDuration = 192,
|
|
13
|
+
flipDuration = 30,
|
|
14
|
+
direction = "left", // "left" | "right"
|
|
15
|
+
}) => {
|
|
16
|
+
const frame = useCurrentFrame();
|
|
17
|
+
|
|
18
|
+
const flipStart = sceneDuration - flipDuration;
|
|
19
|
+
|
|
20
|
+
const rotate = interpolate(
|
|
21
|
+
frame,
|
|
22
|
+
[flipStart, sceneDuration],
|
|
23
|
+
[0, 80],
|
|
24
|
+
{
|
|
25
|
+
extrapolateLeft: "clamp",
|
|
26
|
+
extrapolateRight: "clamp",
|
|
27
|
+
easing: Easing.inOut(Easing.cubic),
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
const signedRotate = direction === "left" ? -rotate : rotate;
|
|
32
|
+
|
|
33
|
+
const bgOpacity = interpolate(
|
|
34
|
+
frame,
|
|
35
|
+
[flipStart + flipDuration * 0.5, sceneDuration],
|
|
36
|
+
[0, 1],
|
|
37
|
+
{
|
|
38
|
+
extrapolateLeft: "clamp",
|
|
39
|
+
extrapolateRight: "clamp",
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<AbsoluteFill style={{ perspective: 2500 }}>
|
|
45
|
+
|
|
46
|
+
{/* Fake back of page */}
|
|
47
|
+
<AbsoluteFill>
|
|
48
|
+
<img
|
|
49
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-bg.webp"
|
|
50
|
+
style={{
|
|
51
|
+
position: "absolute",
|
|
52
|
+
inset: 0,
|
|
53
|
+
width: "100%",
|
|
54
|
+
height: "100%",
|
|
55
|
+
objectFit: "cover",
|
|
56
|
+
}}
|
|
57
|
+
/>
|
|
58
|
+
</AbsoluteFill>
|
|
59
|
+
|
|
60
|
+
{/* Next page */}
|
|
61
|
+
<AbsoluteFill style={{ opacity: bgOpacity }}>
|
|
62
|
+
{background}
|
|
63
|
+
</AbsoluteFill>
|
|
64
|
+
|
|
65
|
+
{/* Current page */}
|
|
66
|
+
<AbsoluteFill
|
|
67
|
+
style={{
|
|
68
|
+
transformOrigin:
|
|
69
|
+
direction === "left" ? "left center" : "right center",
|
|
70
|
+
transformStyle: "preserve-3d",
|
|
71
|
+
backfaceVisibility: "hidden",
|
|
72
|
+
transform: `rotateY(${signedRotate}deg)`,
|
|
73
|
+
boxShadow:
|
|
74
|
+
direction === "left"
|
|
75
|
+
? "20px 0 40px rgba(0,0,0,0.25)"
|
|
76
|
+
: "-20px 0 40px rgba(0,0,0,0.25)",
|
|
77
|
+
}}
|
|
78
|
+
>
|
|
79
|
+
{children}
|
|
80
|
+
</AbsoluteFill>
|
|
81
|
+
|
|
82
|
+
</AbsoluteFill>
|
|
83
|
+
);
|
|
84
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { interpolate } from "remotion";
|
|
2
|
+
|
|
3
|
+
export const SmoothReveal20012026 = ({
|
|
4
|
+
frame,
|
|
5
|
+
startFrame,
|
|
6
|
+
delay = 0,
|
|
7
|
+
duration = 20,
|
|
8
|
+
distance = 40,
|
|
9
|
+
direction = "top",
|
|
10
|
+
|
|
11
|
+
// EXIT CONFIG
|
|
12
|
+
durationInFrames,
|
|
13
|
+
fps,
|
|
14
|
+
exitDurationSec = 1.5,
|
|
15
|
+
}) => {
|
|
16
|
+
|
|
17
|
+
/* ---------------- ENTRY ---------------- */
|
|
18
|
+
const entry = interpolate(
|
|
19
|
+
frame,
|
|
20
|
+
[startFrame + delay, startFrame + delay + duration],
|
|
21
|
+
[0, 1],
|
|
22
|
+
{ extrapolateRight: "clamp" }
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
/* ---------------- EXIT ---------------- */
|
|
26
|
+
let exit = 1;
|
|
27
|
+
|
|
28
|
+
if (durationInFrames && fps) {
|
|
29
|
+
const exitStart = durationInFrames - fps * exitDurationSec;
|
|
30
|
+
|
|
31
|
+
exit = interpolate(
|
|
32
|
+
frame,
|
|
33
|
+
[exitStart, durationInFrames],
|
|
34
|
+
[1, 0],
|
|
35
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ---------------- OPACITY ---------------- */
|
|
40
|
+
const opacity = entry * exit;
|
|
41
|
+
|
|
42
|
+
/* ---------------- MOVEMENT ---------------- */
|
|
43
|
+
let x = 0;
|
|
44
|
+
let y = 0;
|
|
45
|
+
|
|
46
|
+
// ENTRY MOVEMENT
|
|
47
|
+
if (direction === "top") y = -distance * (1 - entry);
|
|
48
|
+
if (direction === "bottom") y = distance * (1 - entry);
|
|
49
|
+
if (direction === "left") x = -distance * (1 - entry);
|
|
50
|
+
if (direction === "right") x = distance * (1 - entry);
|
|
51
|
+
|
|
52
|
+
// EXIT MOVEMENT (SAFE — NO INTERPOLATE REVERSE)
|
|
53
|
+
if (direction === "top") y += -distance * (1 - exit);
|
|
54
|
+
if (direction === "bottom") y += distance * (1 - exit);
|
|
55
|
+
if (direction === "left") x += -distance * (1 - exit);
|
|
56
|
+
if (direction === "right") x += distance * (1 - exit);
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
opacity,
|
|
60
|
+
transform: `translate(${x}px, ${y}px)`,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
@@ -14,15 +14,26 @@ export const WordReveal28012026 = ({
|
|
|
14
14
|
fontFamily = "Dancing Script",
|
|
15
15
|
letterSpacing = 2,
|
|
16
16
|
lineHeight = 1.2,
|
|
17
|
-
fontWeight =600
|
|
17
|
+
fontWeight = 600,
|
|
18
|
+
exitDurationSec = 1.5,
|
|
18
19
|
}) => {
|
|
19
20
|
const frame = useCurrentFrame();
|
|
20
|
-
const { fps } = useVideoConfig();
|
|
21
|
+
const { fps, durationInFrames } = useVideoConfig();
|
|
21
22
|
|
|
22
23
|
const words = text.split(" ");
|
|
23
24
|
|
|
24
|
-
const wordDelay = fps * 0.15;
|
|
25
|
-
const animDuration = fps * 0.4;
|
|
25
|
+
const wordDelay = fps * 0.15;
|
|
26
|
+
const animDuration = fps * 0.4;
|
|
27
|
+
|
|
28
|
+
/* ---------------- LAST WORD END FRAME ---------------- */
|
|
29
|
+
const lastWordEnd =
|
|
30
|
+
start + words.length * wordDelay + animDuration;
|
|
31
|
+
|
|
32
|
+
/* ---------------- SAFE EXIT START ---------------- */
|
|
33
|
+
const exitStartBase = Math.max(
|
|
34
|
+
durationInFrames - fps * exitDurationSec,
|
|
35
|
+
lastWordEnd + fps * 0.3
|
|
36
|
+
);
|
|
26
37
|
|
|
27
38
|
return (
|
|
28
39
|
<div
|
|
@@ -37,7 +48,8 @@ export const WordReveal28012026 = ({
|
|
|
37
48
|
{words.map((word, i) => {
|
|
38
49
|
const delay = start + i * wordDelay;
|
|
39
50
|
|
|
40
|
-
|
|
51
|
+
/* ---------------- ENTRY ---------------- */
|
|
52
|
+
const entryOpacity = interpolate(
|
|
41
53
|
frame,
|
|
42
54
|
[delay, delay + animDuration],
|
|
43
55
|
[0, 1],
|
|
@@ -69,12 +81,38 @@ export const WordReveal28012026 = ({
|
|
|
69
81
|
}
|
|
70
82
|
);
|
|
71
83
|
|
|
84
|
+
/* ---------------- EXIT (Reverse Order) ---------------- */
|
|
85
|
+
|
|
86
|
+
const reverseIndex = words.length - 1 - i;
|
|
87
|
+
const exitDelay = exitStartBase + reverseIndex * wordDelay;
|
|
88
|
+
|
|
89
|
+
const exitProgress = interpolate(
|
|
90
|
+
frame,
|
|
91
|
+
[exitDelay, exitDelay + animDuration],
|
|
92
|
+
[0, 1],
|
|
93
|
+
{
|
|
94
|
+
extrapolateLeft: "clamp",
|
|
95
|
+
extrapolateRight: "clamp",
|
|
96
|
+
easing: Easing.in(Easing.cubic),
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const exitOpacity = 1 - exitProgress;
|
|
101
|
+
const exitTranslateY = exitProgress * 30;
|
|
102
|
+
const exitScale = 1 - exitProgress * 0.05;
|
|
103
|
+
|
|
104
|
+
/* ---------------- FINAL VALUES ---------------- */
|
|
105
|
+
|
|
106
|
+
const finalOpacity = entryOpacity * exitOpacity;
|
|
107
|
+
const finalTranslateY = translateY + exitTranslateY;
|
|
108
|
+
const finalScale = scale * exitScale;
|
|
109
|
+
|
|
72
110
|
return (
|
|
73
111
|
<span
|
|
74
112
|
key={i}
|
|
75
113
|
style={{
|
|
76
|
-
opacity,
|
|
77
|
-
transform: `translateY(${
|
|
114
|
+
opacity: finalOpacity,
|
|
115
|
+
transform: `translateY(${finalTranslateY}px) scale(${finalScale})`,
|
|
78
116
|
margin: "0 12px 8px 0",
|
|
79
117
|
fontSize,
|
|
80
118
|
color,
|
|
@@ -200,13 +200,9 @@ export const F03022026_02 = ({
|
|
|
200
200
|
overflowWrap: "break-word",
|
|
201
201
|
lineHeight: "1.2",
|
|
202
202
|
}}
|
|
203
|
-
>
|
|
203
|
+
>
|
|
204
204
|
<h1
|
|
205
205
|
style={{
|
|
206
|
-
fontFamily: "Dancing Script",
|
|
207
|
-
letterSpacing: 3,
|
|
208
|
-
lineHeight: 1.3,
|
|
209
|
-
fontWeight: 600,
|
|
210
206
|
maxWidth: "80%",
|
|
211
207
|
opacity: welcomeExitOpacity,
|
|
212
208
|
transform: `translateX(${welcomeExitX}px)`
|
|
@@ -217,6 +213,10 @@ export const F03022026_02 = ({
|
|
|
217
213
|
start={20}
|
|
218
214
|
fontSize={60}
|
|
219
215
|
color="#B45A6A"
|
|
216
|
+
fontFamily="Dancing Script"
|
|
217
|
+
letterSpacing={3}
|
|
218
|
+
lineHeight={1.3}
|
|
219
|
+
fontWeight={600}
|
|
220
220
|
/>
|
|
221
221
|
</h1>
|
|
222
222
|
|
|
@@ -284,12 +284,7 @@ export const F03022026_02 = ({
|
|
|
284
284
|
|
|
285
285
|
<div
|
|
286
286
|
style={{
|
|
287
|
-
fontSize: 65,
|
|
288
|
-
fontWeight: "600",
|
|
289
|
-
color: "#B76E79",
|
|
290
|
-
lineHeight: 1.2,
|
|
291
287
|
marginTop: "15px",
|
|
292
|
-
letterSpacing: "4px",
|
|
293
288
|
whiteSpace: "nowrap",
|
|
294
289
|
opacity: dateExitOpacity,
|
|
295
290
|
transform: `translateX(${dateExitX}px)`
|
|
@@ -300,6 +295,10 @@ export const F03022026_02 = ({
|
|
|
300
295
|
start={50}
|
|
301
296
|
fontSize={65}
|
|
302
297
|
color="#6B4A3A"
|
|
298
|
+
fontFamily="Dancing Script"
|
|
299
|
+
letterSpacing={4}
|
|
300
|
+
lineHeight={1.3}
|
|
301
|
+
fontWeight={600}
|
|
303
302
|
/>
|
|
304
303
|
|
|
305
304
|
</div>
|
|
@@ -163,7 +163,7 @@ export const F03022026_05 = ({
|
|
|
163
163
|
position: "absolute",
|
|
164
164
|
top: "40%",
|
|
165
165
|
left: "50%",
|
|
166
|
-
width:"80%",
|
|
166
|
+
width: "80%",
|
|
167
167
|
objectFit: "cover",
|
|
168
168
|
opacity: imageOpacity * imageExitOpacity,
|
|
169
169
|
transform: `translateX(-50%) translateX(${moveX}px) translateY(${imageExitY}px)`
|
|
@@ -178,7 +178,7 @@ export const F03022026_05 = ({
|
|
|
178
178
|
display: "flex",
|
|
179
179
|
justifyContent: "center",
|
|
180
180
|
alignItems: "center",
|
|
181
|
-
opacity: msgOpacity * msgExitOpacity,
|
|
181
|
+
opacity: msgOpacity * msgExitOpacity,
|
|
182
182
|
transform: `translateY(-20%) translateY(${msgY + msgExitY}px)`,
|
|
183
183
|
}}
|
|
184
184
|
>
|
|
@@ -186,15 +186,18 @@ export const F03022026_05 = ({
|
|
|
186
186
|
style={{
|
|
187
187
|
maxWidth: "70%",
|
|
188
188
|
textAlign: "center",
|
|
189
|
-
lineHeight: 1.3,
|
|
190
189
|
}}
|
|
191
190
|
>
|
|
192
191
|
<WordReveal28012026
|
|
193
192
|
text={familyMember}
|
|
194
|
-
start={
|
|
195
|
-
fontSize={60}
|
|
196
|
-
color=
|
|
193
|
+
start={10}
|
|
194
|
+
fontSize={60}
|
|
195
|
+
color="#F4A261"
|
|
197
196
|
fontFamily="Playfair Display"
|
|
197
|
+
letterSpacing={3}
|
|
198
|
+
lineHeight={1.3}
|
|
199
|
+
fontWeight={600}
|
|
200
|
+
exitDurationSec={6}
|
|
198
201
|
/>
|
|
199
202
|
</div>
|
|
200
203
|
</div>
|
|
@@ -221,10 +224,10 @@ export const F03022026_05 = ({
|
|
|
221
224
|
style={{
|
|
222
225
|
fontFamily: "Dancing Script",
|
|
223
226
|
fontSize: 180,
|
|
224
|
-
color:"#D94A5C"
|
|
227
|
+
color: "#D94A5C"
|
|
225
228
|
}}
|
|
226
229
|
>
|
|
227
|
-
Thank You
|
|
230
|
+
Thank You
|
|
228
231
|
</h1>
|
|
229
232
|
</div>
|
|
230
233
|
</div>
|
|
@@ -2,7 +2,6 @@ import React from "react";
|
|
|
2
2
|
import {
|
|
3
3
|
AbsoluteFill,
|
|
4
4
|
Img,
|
|
5
|
-
staticFile,
|
|
6
5
|
useCurrentFrame,
|
|
7
6
|
useVideoConfig,
|
|
8
7
|
interpolate,
|
|
@@ -106,7 +105,7 @@ export const F05022026_01 = () => {
|
|
|
106
105
|
}}
|
|
107
106
|
>
|
|
108
107
|
<Img
|
|
109
|
-
src=
|
|
108
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/05022026-Ganesh.webp"
|
|
110
109
|
style={{
|
|
111
110
|
width: "50%",
|
|
112
111
|
objectFit: "contain",
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
interpolate,
|
|
7
7
|
Easing,
|
|
8
8
|
Img,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
import { HangingLamp05022026 } from "../Elements/HangingLamp05022026";
|
|
12
11
|
import { DucksFrame05022026 } from "../Elements/DucksFrame05022026";
|
|
@@ -23,9 +22,9 @@ export const F05022026_02 = ({
|
|
|
23
22
|
}) => {
|
|
24
23
|
const frame = useCurrentFrame();
|
|
25
24
|
const { fps } = useVideoConfig();
|
|
26
|
-
const opacity = interpolate(frame, [0, 25], [0, 1], {
|
|
27
|
-
|
|
28
|
-
});
|
|
25
|
+
// const opacity = interpolate(frame, [0, 25], [0, 1], {
|
|
26
|
+
// extrapolateRight: "clamp",
|
|
27
|
+
// });
|
|
29
28
|
|
|
30
29
|
const translateY = interpolate(frame, [0, 25], [-40, 0], {
|
|
31
30
|
extrapolateRight: "clamp",
|
|
@@ -61,12 +60,6 @@ export const F05022026_02 = ({
|
|
|
61
60
|
month: "long",
|
|
62
61
|
});
|
|
63
62
|
const year = d.getFullYear();
|
|
64
|
-
|
|
65
|
-
// return d.toLocaleDateString("en-IN", {
|
|
66
|
-
// day: "numeric",
|
|
67
|
-
// month: "long",
|
|
68
|
-
// year: "numeric",
|
|
69
|
-
// });
|
|
70
63
|
return {
|
|
71
64
|
datemonth: dayMonth,
|
|
72
65
|
year: year.toString(),
|
|
@@ -217,8 +210,8 @@ export const F05022026_02 = ({
|
|
|
217
210
|
style={{
|
|
218
211
|
maxWidth: "60%",
|
|
219
212
|
textAlign: "center",
|
|
220
|
-
|
|
221
|
-
|
|
213
|
+
opacity: exitOpacity,
|
|
214
|
+
transform: `translateY(${translateY + exitTopY}px)`,
|
|
222
215
|
}}
|
|
223
216
|
>
|
|
224
217
|
<WordReveal28012026
|
|
@@ -354,8 +347,6 @@ export const F05022026_02 = ({
|
|
|
354
347
|
left: "13%",
|
|
355
348
|
lineHeight: 1.2,
|
|
356
349
|
whiteSpace: "nowrap",
|
|
357
|
-
// opacity: exitOpacity,
|
|
358
|
-
// transform: `translateY(${exitTopY}px)`,
|
|
359
350
|
}}
|
|
360
351
|
>
|
|
361
352
|
<WordReveal28012026
|
|
@@ -367,6 +358,7 @@ export const F05022026_02 = ({
|
|
|
367
358
|
letterSpacing="2px"
|
|
368
359
|
lineHeight="1.2"
|
|
369
360
|
fontWeight="600"
|
|
361
|
+
exitDurationSec={1.5}
|
|
370
362
|
/>
|
|
371
363
|
<WordReveal28012026
|
|
372
364
|
text={dateParts.year}
|
|
@@ -377,6 +369,7 @@ export const F05022026_02 = ({
|
|
|
377
369
|
letterSpacing="4px"
|
|
378
370
|
lineHeight="1"
|
|
379
371
|
fontWeight="600"
|
|
372
|
+
exitDurationSec={1.5}
|
|
380
373
|
/>
|
|
381
374
|
</div>
|
|
382
375
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
3
|
AbsoluteFill,
|
|
4
4
|
useCurrentFrame,
|
|
5
5
|
useVideoConfig,
|
|
6
6
|
interpolate,
|
|
7
7
|
Easing,
|
|
8
8
|
Img,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
import { HangingJumar05022026 } from "../Elements/HangingJumar05022026";
|
|
12
|
-
import {
|
|
11
|
+
import { FloatingFlowersBottom05022026 } from "../Elements/FloatingFlowersBottom05022026";
|
|
13
12
|
|
|
14
13
|
export const F05022026_03 = ({
|
|
15
14
|
eventDateTime, venueName, venueAddress
|
|
@@ -183,10 +182,10 @@ export const F05022026_03 = ({
|
|
|
183
182
|
overflow: "hidden",
|
|
184
183
|
}}
|
|
185
184
|
>
|
|
186
|
-
<
|
|
185
|
+
<FloatingFlowersBottom05022026/>
|
|
187
186
|
|
|
188
187
|
<Img
|
|
189
|
-
src=
|
|
188
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-couple-walk.webp"
|
|
190
189
|
style={{
|
|
191
190
|
position: "absolute",
|
|
192
191
|
left: "50%",
|