@evatril/video-templates 2.0.10 → 2.0.11
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/public/video-images/03022026-krishnaradha-4.webp +0 -0
- package/public/video-images/03022026-krishnaradha-5.webp +0 -0
- package/src/Invitations/Elements/FlowerReveal_TL_BR_28012026.jsx +2 -3
- package/src/Invitations/Elements/SideTrees20012026.jsx +11 -23
- package/src/Invitations/Frames/F03022026_01.jsx +3 -4
- package/src/Invitations/Frames/F03022026_02.jsx +2 -4
- package/src/Invitations/Frames/F03022026_03.jsx +2 -3
- package/src/Invitations/Frames/F03022026_04.jsx +2 -3
- package/src/Invitations/Frames/F03022026_05.jsx +2 -3
- package/src/Invitations/Frames/F20012026_02.jsx +2 -1
- package/src/Invitations/Frames/F20012026_03.jsx +192 -208
- package/src/Invitations/Frames/F20012026_04.jsx +282 -0
- package/src/Invitations/Themes/T03022026_01.jsx +17 -17
- package/src/Invitations/Themes/T20012026_01.jsx +31 -4
- package/src/fonts/registerFonts.js +3 -8
- package/public/video-images/03022026-krishnaradha-41.webp +0 -0
- package/public/video-images/03022026-krishnaradha-52.webp +0 -0
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {
|
|
3
3
|
Img,
|
|
4
|
-
staticFile,
|
|
5
4
|
useCurrentFrame,
|
|
6
5
|
useVideoConfig,
|
|
7
6
|
interpolate,
|
|
@@ -74,7 +73,7 @@ export const FlowerReveal_TL_BR_28012026 = ({ startAfter = 0 }) => {
|
|
|
74
73
|
<>
|
|
75
74
|
{/* 🌸 TOP LEFT */}
|
|
76
75
|
<Img
|
|
77
|
-
src=
|
|
76
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-TopLeftFlower.webp"
|
|
78
77
|
style={{
|
|
79
78
|
position: "absolute",
|
|
80
79
|
top: "-170px",
|
|
@@ -93,7 +92,7 @@ export const FlowerReveal_TL_BR_28012026 = ({ startAfter = 0 }) => {
|
|
|
93
92
|
|
|
94
93
|
{/* 🌸 BOTTOM RIGHT */}
|
|
95
94
|
<Img
|
|
96
|
-
src=
|
|
95
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-BottomRightFlower.webp"
|
|
97
96
|
style={{
|
|
98
97
|
position: "absolute",
|
|
99
98
|
bottom: "-300px",
|
|
@@ -31,7 +31,7 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
|
|
|
31
31
|
const leftTreeX = interpolate(
|
|
32
32
|
frame,
|
|
33
33
|
[delay, delay + duration],
|
|
34
|
-
[-600, -
|
|
34
|
+
[-600, -370],
|
|
35
35
|
{
|
|
36
36
|
extrapolateLeft: "clamp",
|
|
37
37
|
extrapolateRight: "clamp",
|
|
@@ -42,7 +42,7 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
|
|
|
42
42
|
const rightTreeX = interpolate(
|
|
43
43
|
frame,
|
|
44
44
|
[delay, delay + duration],
|
|
45
|
-
[600,
|
|
45
|
+
[600, 400],
|
|
46
46
|
{
|
|
47
47
|
extrapolateLeft: "clamp",
|
|
48
48
|
extrapolateRight: "clamp",
|
|
@@ -50,53 +50,41 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
|
|
|
50
50
|
}
|
|
51
51
|
);
|
|
52
52
|
|
|
53
|
-
/* ----------------
|
|
54
|
-
const
|
|
55
|
-
const swingAngle = 2; // degrees (keep small)
|
|
56
|
-
|
|
57
|
-
const swing =
|
|
58
|
-
frame > delay
|
|
59
|
-
? Math.sin((frame - delay) / swingSpeed) * swingAngle
|
|
60
|
-
: 0;
|
|
61
|
-
|
|
62
|
-
const swayX =
|
|
53
|
+
/* ---------------- 🍃 LEAF SWAY ONLY ---------------- */
|
|
54
|
+
const leafSway =
|
|
63
55
|
frame > delay
|
|
64
|
-
? Math.sin((frame - delay) /
|
|
56
|
+
? Math.sin((frame - delay) / 28) * 8 // adjust 8 for more/less sway
|
|
65
57
|
: 0;
|
|
66
58
|
|
|
67
59
|
return (
|
|
68
60
|
<>
|
|
69
61
|
{/* 🌳 LEFT TREE */}
|
|
70
62
|
<Img
|
|
71
|
-
src={staticFile("video-images/20012026-tree-
|
|
63
|
+
src={staticFile("video-images/20012026-tree-left1.webp")}
|
|
72
64
|
style={{
|
|
73
65
|
position: "absolute",
|
|
74
66
|
left: 0,
|
|
75
67
|
bottom: 0,
|
|
76
|
-
|
|
68
|
+
width: "100%",
|
|
77
69
|
opacity,
|
|
78
70
|
transform: `
|
|
79
|
-
translateX(${leftTreeX +
|
|
80
|
-
rotate(${swing}deg)
|
|
71
|
+
translateX(${leftTreeX + leafSway}px)
|
|
81
72
|
`,
|
|
82
|
-
transformOrigin: "bottom left", // 🌳 root fixed
|
|
83
73
|
}}
|
|
84
74
|
/>
|
|
85
75
|
|
|
86
76
|
{/* 🌳 RIGHT TREE */}
|
|
87
77
|
<Img
|
|
88
|
-
src={staticFile("video-images/20012026-tree-
|
|
78
|
+
src={staticFile("video-images/20012026-tree-right2.webp")}
|
|
89
79
|
style={{
|
|
90
80
|
position: "absolute",
|
|
91
81
|
right: 0,
|
|
92
|
-
bottom:
|
|
82
|
+
bottom: "-25%",
|
|
93
83
|
height: "100%",
|
|
94
84
|
opacity,
|
|
95
85
|
transform: `
|
|
96
|
-
translateX(${rightTreeX -
|
|
97
|
-
rotate(${-swing}deg)
|
|
86
|
+
translateX(${rightTreeX - leafSway}px)
|
|
98
87
|
`,
|
|
99
|
-
transformOrigin: "bottom right", // 🌳 root fixed
|
|
100
88
|
}}
|
|
101
89
|
/>
|
|
102
90
|
</>
|
|
@@ -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,
|
|
@@ -64,7 +63,7 @@ export const F03022026_01 = () => {
|
|
|
64
63
|
// Scene timing
|
|
65
64
|
const sceneDuration = fps * 5;
|
|
66
65
|
|
|
67
|
-
// Exit starts near end
|
|
66
|
+
// Exit starts near end
|
|
68
67
|
const exitStart = sceneDuration - fps * 1;
|
|
69
68
|
|
|
70
69
|
// Wedding exit
|
|
@@ -151,7 +150,7 @@ export const F03022026_01 = () => {
|
|
|
151
150
|
}}
|
|
152
151
|
>
|
|
153
152
|
<Img
|
|
154
|
-
src=
|
|
153
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha.webp"
|
|
155
154
|
style={{
|
|
156
155
|
position: "absolute",
|
|
157
156
|
top: "40%",
|
|
@@ -211,4 +210,4 @@ export const F03022026_01 = () => {
|
|
|
211
210
|
|
|
212
211
|
</AbsoluteFill>
|
|
213
212
|
);
|
|
214
|
-
};
|
|
213
|
+
};
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
useVideoConfig,
|
|
7
7
|
interpolate,
|
|
8
8
|
Easing,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
import { WordReveal28012026 } from "../Elements/WordReveal28012026";
|
|
12
11
|
|
|
@@ -153,7 +152,6 @@ export const F03022026_02 = ({
|
|
|
153
152
|
overflow: "hidden",
|
|
154
153
|
}}
|
|
155
154
|
>
|
|
156
|
-
|
|
157
155
|
<div
|
|
158
156
|
style={{
|
|
159
157
|
position: "absolute",
|
|
@@ -164,7 +162,7 @@ export const F03022026_02 = ({
|
|
|
164
162
|
}}
|
|
165
163
|
>
|
|
166
164
|
<Img
|
|
167
|
-
src=
|
|
165
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-2.webp"
|
|
168
166
|
style={{
|
|
169
167
|
position: "absolute",
|
|
170
168
|
bottom: "-15%",
|
|
@@ -202,7 +200,7 @@ export const F03022026_02 = ({
|
|
|
202
200
|
overflowWrap: "break-word",
|
|
203
201
|
lineHeight: "1.2",
|
|
204
202
|
}}
|
|
205
|
-
>
|
|
203
|
+
>
|
|
206
204
|
<h1
|
|
207
205
|
style={{
|
|
208
206
|
fontFamily: "Dancing Script",
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
interpolate,
|
|
7
7
|
Easing,
|
|
8
8
|
Img,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
|
|
12
11
|
export const F03022026_03 = ({
|
|
@@ -254,11 +253,11 @@ export const F03022026_03 = ({
|
|
|
254
253
|
|
|
255
254
|
{secondPhoto && (
|
|
256
255
|
<div
|
|
257
|
-
style={{
|
|
256
|
+
style={{
|
|
258
257
|
position: "absolute",
|
|
259
258
|
bottom: "10%",
|
|
260
259
|
right: "8%",
|
|
261
|
-
width: 420,
|
|
260
|
+
width: 420,
|
|
262
261
|
height: 420,
|
|
263
262
|
zIndex: 2,
|
|
264
263
|
transform: `translateX(${secondPhotoX + exitRightX}px)`,
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
interpolate,
|
|
7
7
|
Easing,
|
|
8
8
|
Img,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
|
|
12
11
|
export const F03022026_04 = ({
|
|
@@ -171,12 +170,12 @@ export const F03022026_04 = ({
|
|
|
171
170
|
}}
|
|
172
171
|
>
|
|
173
172
|
<Img
|
|
174
|
-
src=
|
|
173
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-4.webp"
|
|
175
174
|
style={{
|
|
176
175
|
position: "absolute",
|
|
177
176
|
left: "50%",
|
|
178
177
|
bottom: "-12%",
|
|
179
|
-
width: "80%",
|
|
178
|
+
width: "80%",
|
|
180
179
|
transform: `
|
|
181
180
|
translate(-50%, ${translateY}px)
|
|
182
181
|
translateX(${sway}px)
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
useVideoConfig,
|
|
7
7
|
interpolate,
|
|
8
8
|
Easing,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
import { WordReveal28012026 } from "../Elements/WordReveal28012026";
|
|
12
11
|
|
|
@@ -159,7 +158,7 @@ export const F03022026_05 = ({
|
|
|
159
158
|
}}
|
|
160
159
|
>
|
|
161
160
|
<Img
|
|
162
|
-
src=
|
|
161
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-5.webp"
|
|
163
162
|
style={{
|
|
164
163
|
position: "absolute",
|
|
165
164
|
top: "40%",
|
|
@@ -179,7 +178,7 @@ export const F03022026_05 = ({
|
|
|
179
178
|
display: "flex",
|
|
180
179
|
justifyContent: "center",
|
|
181
180
|
alignItems: "center",
|
|
182
|
-
opacity: msgOpacity * msgExitOpacity,
|
|
181
|
+
opacity: msgOpacity * msgExitOpacity,
|
|
183
182
|
transform: `translateY(-20%) translateY(${msgY + msgExitY}px)`,
|
|
184
183
|
}}
|
|
185
184
|
>
|
|
@@ -67,9 +67,10 @@ export const F20012026_02 = ({
|
|
|
67
67
|
>
|
|
68
68
|
{/* Curtain */}
|
|
69
69
|
<Img
|
|
70
|
-
src={staticFile("video-images/20012026-curtain-
|
|
70
|
+
src={staticFile("video-images/20012026-curtain-floral3.webp")}
|
|
71
71
|
style={{
|
|
72
72
|
position: "absolute",
|
|
73
|
+
top:"-12%",
|
|
73
74
|
left: "50%",
|
|
74
75
|
width: "100%",
|
|
75
76
|
opacity: imageOpacity,
|
|
@@ -9,272 +9,256 @@ import {
|
|
|
9
9
|
staticFile,
|
|
10
10
|
} from "remotion";
|
|
11
11
|
|
|
12
|
-
import { GroomBrideLoveScene20012026 } from "../Elements/GroomBrideLoveScene20012026.jsx";
|
|
13
|
-
import { SmoothRevealFromTop20012026 } from "../Elements/SmoothRevealFromTop20012026.jsx"
|
|
14
|
-
|
|
15
12
|
export const F20012026_03 = ({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
fadeInDuration = 30,
|
|
13
|
+
firstName,
|
|
14
|
+
firstPhoto,
|
|
15
|
+
secondName,
|
|
16
|
+
secondPhoto,
|
|
21
17
|
}) => {
|
|
22
18
|
const frame = useCurrentFrame();
|
|
23
19
|
const { fps } = useVideoConfig();
|
|
20
|
+
const opacity = interpolate(frame, [0, 25], [0, 1], {
|
|
21
|
+
extrapolateRight: "clamp",
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const translateY = interpolate(frame, [0, 25], [-40, 0], {
|
|
25
|
+
extrapolateRight: "clamp",
|
|
26
|
+
easing: Easing.out(Easing.ease),
|
|
27
|
+
});
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
29
|
+
// timing (30fps based)
|
|
30
|
+
const firstPhotoStart = fps * 1; // 1 second
|
|
31
|
+
const firstTextStart = fps * 1.5; // +0.5s
|
|
32
|
+
const secondPhotoStart = fps * 2; // +1s after first
|
|
33
|
+
const secondTextStart = fps * 2.5; // +0.5s
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
// FIRST PHOTO (from left)
|
|
36
|
+
const firstPhotoX = interpolate(
|
|
37
|
+
frame,
|
|
38
|
+
[firstPhotoStart, firstPhotoStart + fps * 2],
|
|
39
|
+
[-200, 0],
|
|
40
|
+
{
|
|
41
|
+
extrapolateRight: "clamp",
|
|
42
|
+
easing: Easing.out(Easing.cubic),
|
|
32
43
|
}
|
|
44
|
+
);
|
|
33
45
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
minute: "2-digit",
|
|
41
|
-
hour12: true,
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
44
|
-
};
|
|
46
|
+
const firstPhotoOpacity = interpolate(
|
|
47
|
+
frame,
|
|
48
|
+
[firstPhotoStart, firstPhotoStart + 10],
|
|
49
|
+
[0, 1],
|
|
50
|
+
{ extrapolateRight: "clamp" }
|
|
51
|
+
);
|
|
45
52
|
|
|
46
|
-
|
|
53
|
+
// FIRST TEXT
|
|
54
|
+
const firstTextX = interpolate(
|
|
55
|
+
frame,
|
|
56
|
+
[firstTextStart, firstTextStart + 20],
|
|
57
|
+
[-30, 0],
|
|
58
|
+
{
|
|
59
|
+
extrapolateRight: "clamp",
|
|
60
|
+
easing: Easing.out(Easing.ease),
|
|
61
|
+
}
|
|
62
|
+
);
|
|
47
63
|
|
|
48
|
-
const
|
|
64
|
+
const firstTextOpacity = interpolate(
|
|
65
|
+
frame,
|
|
66
|
+
[firstTextStart, firstTextStart + 10],
|
|
67
|
+
[0, 1],
|
|
68
|
+
{ extrapolateRight: "clamp" }
|
|
69
|
+
);
|
|
49
70
|
|
|
50
|
-
|
|
51
|
-
const
|
|
71
|
+
// SECOND PHOTO (from right)
|
|
72
|
+
const secondPhotoX = interpolate(
|
|
73
|
+
frame,
|
|
74
|
+
[secondPhotoStart, secondPhotoStart + fps * 2],
|
|
75
|
+
[200, 0],
|
|
76
|
+
{
|
|
77
|
+
extrapolateRight: "clamp",
|
|
78
|
+
easing: Easing.out(Easing.cubic),
|
|
79
|
+
}
|
|
80
|
+
);
|
|
52
81
|
|
|
53
|
-
const
|
|
82
|
+
const secondPhotoOpacity = interpolate(
|
|
54
83
|
frame,
|
|
55
|
-
[
|
|
84
|
+
[secondPhotoStart, secondPhotoStart + 10],
|
|
56
85
|
[0, 1],
|
|
86
|
+
{ extrapolateRight: "clamp" }
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
// SECOND TEXT
|
|
90
|
+
const secondTextX = interpolate(
|
|
91
|
+
frame,
|
|
92
|
+
[secondTextStart, secondTextStart + 20],
|
|
93
|
+
[60, 0], // 👉 from RIGHT to center
|
|
57
94
|
{
|
|
58
95
|
extrapolateRight: "clamp",
|
|
59
96
|
easing: Easing.out(Easing.ease),
|
|
60
97
|
}
|
|
61
98
|
);
|
|
62
99
|
|
|
63
|
-
const
|
|
100
|
+
const secondTextOpacity = interpolate(
|
|
101
|
+
frame,
|
|
102
|
+
[secondTextStart, secondTextStart + 10],
|
|
103
|
+
[0, 1],
|
|
104
|
+
{ extrapolateRight: "clamp" }
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const totalFrames = fps * 7;
|
|
108
|
+
|
|
109
|
+
const exitStart = totalFrames - fps * 2; // last 1 second
|
|
110
|
+
|
|
111
|
+
const exitOpacity = interpolate(
|
|
112
|
+
frame,
|
|
113
|
+
[exitStart, totalFrames],
|
|
114
|
+
[1, 0],
|
|
115
|
+
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
|
|
116
|
+
);
|
|
117
|
+
const exitTopY = interpolate(
|
|
64
118
|
frame,
|
|
65
|
-
[
|
|
66
|
-
[0
|
|
119
|
+
[exitStart, totalFrames],
|
|
120
|
+
[0, -40],
|
|
67
121
|
{
|
|
122
|
+
extrapolateLeft: "clamp",
|
|
68
123
|
extrapolateRight: "clamp",
|
|
69
|
-
easing: Easing.
|
|
124
|
+
easing: Easing.in(Easing.ease),
|
|
70
125
|
}
|
|
71
126
|
);
|
|
72
|
-
const
|
|
127
|
+
const exitLeftX = interpolate(
|
|
73
128
|
frame,
|
|
74
|
-
[
|
|
75
|
-
[
|
|
129
|
+
[exitStart, totalFrames],
|
|
130
|
+
[0, -60],
|
|
76
131
|
{
|
|
132
|
+
extrapolateLeft: "clamp",
|
|
77
133
|
extrapolateRight: "clamp",
|
|
78
|
-
easing: Easing.
|
|
134
|
+
easing: Easing.in(Easing.ease),
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
const exitRightX = interpolate(
|
|
138
|
+
frame,
|
|
139
|
+
[exitStart, totalFrames],
|
|
140
|
+
[0, 60],
|
|
141
|
+
{
|
|
142
|
+
extrapolateLeft: "clamp",
|
|
143
|
+
extrapolateRight: "clamp",
|
|
144
|
+
easing: Easing.in(Easing.ease),
|
|
79
145
|
}
|
|
80
146
|
);
|
|
81
147
|
|
|
82
|
-
return (
|
|
148
|
+
return (
|
|
83
149
|
<AbsoluteFill
|
|
84
150
|
style={{
|
|
85
|
-
transformOrigin: "center center",
|
|
86
151
|
overflow: "hidden",
|
|
87
152
|
}}
|
|
88
153
|
>
|
|
89
|
-
<Img
|
|
90
|
-
src={staticFile("video-images/20012026-wedding-gate.webp")}
|
|
91
|
-
style={{
|
|
92
|
-
position: "absolute",
|
|
93
|
-
top: 0,
|
|
94
|
-
left: "50%",
|
|
95
|
-
width: "100%",
|
|
96
|
-
height: "100%",
|
|
97
|
-
opacity: imageOpacity,
|
|
98
|
-
transform: `
|
|
99
|
-
translateX(-50%)
|
|
100
|
-
translateY(${imageTranslateY}px)
|
|
101
|
-
scale(${imageScale})
|
|
102
|
-
`,
|
|
103
|
-
}}
|
|
104
|
-
/>
|
|
105
154
|
|
|
106
|
-
|
|
155
|
+
{firstPhoto && (
|
|
156
|
+
<div
|
|
157
|
+
style={{
|
|
158
|
+
position: "absolute",
|
|
159
|
+
top: "28%",
|
|
160
|
+
left: "8%",
|
|
161
|
+
width: 420,
|
|
162
|
+
height: 420,
|
|
163
|
+
zIndex: 2,
|
|
164
|
+
transform: `translateX(${firstPhotoX + exitLeftX}px)`,
|
|
165
|
+
opacity: firstPhotoOpacity * exitOpacity,
|
|
166
|
+
}}
|
|
167
|
+
>
|
|
168
|
+
<Img
|
|
169
|
+
src={firstPhoto}
|
|
170
|
+
style={{
|
|
171
|
+
width: "100%",
|
|
172
|
+
height: "100%",
|
|
173
|
+
objectFit: "cover",
|
|
174
|
+
border: "4px solid #C65A7A",
|
|
175
|
+
borderRadius: "50%",
|
|
176
|
+
}}
|
|
177
|
+
/>
|
|
178
|
+
</div>
|
|
179
|
+
)}
|
|
107
180
|
|
|
181
|
+
{/* FIRST NAME + SIDE NOTE */}
|
|
108
182
|
<div
|
|
109
183
|
style={{
|
|
110
184
|
position: "absolute",
|
|
111
|
-
top: "
|
|
112
|
-
|
|
185
|
+
top: "35%",
|
|
186
|
+
left: "35%",
|
|
187
|
+
lineHeight: 1.2,
|
|
113
188
|
display: "flex",
|
|
114
189
|
flexDirection: "column",
|
|
115
190
|
alignItems: "center",
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
191
|
+
transform: `translateX(${firstTextX + exitLeftX}px)`,
|
|
192
|
+
opacity: firstTextOpacity * exitOpacity,
|
|
193
|
+
|
|
119
194
|
}}
|
|
120
195
|
>
|
|
121
|
-
<
|
|
122
|
-
style={{
|
|
123
|
-
maxWidth: "50%",
|
|
124
|
-
fontFamily: "Playfair Display",
|
|
125
|
-
fontSize: 55,
|
|
126
|
-
fontWeight: "600",
|
|
127
|
-
color: "#3B2F2F",
|
|
128
|
-
lineHeight: 1.2,
|
|
129
|
-
letterSpacing: "2px",
|
|
130
|
-
whiteSpace: "normal",
|
|
131
|
-
wordBreak: "break-word",
|
|
132
|
-
overflowWrap: "break-word",
|
|
133
|
-
...SmoothRevealFromTop20012026({
|
|
134
|
-
frame,
|
|
135
|
-
startFrame: DETAILS_START,
|
|
136
|
-
delay: 0,
|
|
137
|
-
})
|
|
138
|
-
}}
|
|
139
|
-
>
|
|
140
|
-
{venueName}
|
|
141
|
-
</div>
|
|
142
|
-
|
|
143
|
-
<div
|
|
144
|
-
style={{
|
|
145
|
-
maxWidth: "80%",
|
|
146
|
-
fontFamily: "Playfair Display",
|
|
147
|
-
fontSize: 50,
|
|
148
|
-
fontWeight: "600",
|
|
149
|
-
color: "#5A4A42",
|
|
150
|
-
lineHeight: 1.2,
|
|
151
|
-
letterSpacing: "2px",
|
|
152
|
-
whiteSpace: "normal",
|
|
153
|
-
wordBreak: "break-word",
|
|
154
|
-
overflowWrap: "break-word",
|
|
155
|
-
...SmoothRevealFromTop20012026({
|
|
156
|
-
frame,
|
|
157
|
-
startFrame: DETAILS_START,
|
|
158
|
-
delay: 25,
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
}}
|
|
162
|
-
>
|
|
163
|
-
{venueAddress}
|
|
164
|
-
</div>
|
|
165
|
-
<div
|
|
166
|
-
style={{
|
|
167
|
-
fontFamily: "Great Vibes",
|
|
168
|
-
fontSize: 55,
|
|
169
|
-
fontWeight: "600",
|
|
170
|
-
color: "#6B1E2E",
|
|
171
|
-
lineHeight: 1.2,
|
|
172
|
-
letterSpacing: "3px",
|
|
173
|
-
whiteSpace: "normal",
|
|
174
|
-
wordBreak: "break-word",
|
|
175
|
-
overflowWrap: "break-word",
|
|
176
|
-
...SmoothRevealFromTop20012026({
|
|
177
|
-
frame,
|
|
178
|
-
startFrame: DETAILS_START,
|
|
179
|
-
delay: 50,
|
|
180
|
-
})
|
|
181
|
-
|
|
182
|
-
}}
|
|
183
|
-
>
|
|
184
|
-
On the joyous occasion
|
|
185
|
-
</div>
|
|
186
|
-
<div
|
|
196
|
+
<h1
|
|
187
197
|
style={{
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
color: "#6B1E2E",
|
|
195
|
-
lineHeight: 1.2,
|
|
196
|
-
letterSpacing: "2px",
|
|
197
|
-
whiteSpace: "normal",
|
|
198
|
-
wordBreak: "break-word",
|
|
199
|
-
overflowWrap: "break-word",
|
|
200
|
-
...SmoothRevealFromTop20012026({
|
|
201
|
-
frame,
|
|
202
|
-
startFrame: DETAILS_START,
|
|
203
|
-
delay: 70,
|
|
204
|
-
})
|
|
205
|
-
|
|
198
|
+
fontFamily: "Dancing Script",
|
|
199
|
+
color: "#C65A7A",
|
|
200
|
+
fontSize: 80,
|
|
201
|
+
maxWidth: "70%",
|
|
202
|
+
textAlign: "center",
|
|
203
|
+
wordWrap: "break-word",
|
|
206
204
|
}}
|
|
207
205
|
>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
</div>
|
|
212
|
-
<div
|
|
213
|
-
style={{
|
|
214
|
-
fontFamily: "Great Vibes",
|
|
215
|
-
fontSize: 55,
|
|
216
|
-
fontWeight: "600",
|
|
217
|
-
color: "#4B3A28",
|
|
218
|
-
lineHeight: 1.2,
|
|
219
|
-
letterSpacing: "2px",
|
|
220
|
-
whiteSpace: "normal",
|
|
221
|
-
wordBreak: "break-word",
|
|
222
|
-
overflowWrap: "break-word",
|
|
223
|
-
...SmoothRevealFromTop20012026({
|
|
224
|
-
frame,
|
|
225
|
-
startFrame: DETAILS_START,
|
|
226
|
-
delay: 95,
|
|
227
|
-
})
|
|
206
|
+
{firstName}
|
|
207
|
+
</h1>
|
|
208
|
+
</div>
|
|
228
209
|
|
|
229
|
-
|
|
230
|
-
>
|
|
231
|
-
Wedding Time
|
|
232
|
-
</div>
|
|
210
|
+
{secondPhoto && (
|
|
233
211
|
<div
|
|
234
|
-
style={{
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
overflowWrap: "break-word",
|
|
244
|
-
...SmoothRevealFromTop20012026({
|
|
245
|
-
frame,
|
|
246
|
-
startFrame: DETAILS_START,
|
|
247
|
-
delay: 115,
|
|
248
|
-
})
|
|
249
|
-
|
|
212
|
+
style={{
|
|
213
|
+
position: "absolute",
|
|
214
|
+
bottom: "10%",
|
|
215
|
+
right: "8%",
|
|
216
|
+
width: 420,
|
|
217
|
+
height: 420,
|
|
218
|
+
zIndex: 2,
|
|
219
|
+
transform: `translateX(${secondPhotoX + exitRightX}px)`,
|
|
220
|
+
opacity: secondPhotoOpacity * exitOpacity,
|
|
250
221
|
}}
|
|
251
222
|
>
|
|
252
|
-
|
|
223
|
+
<Img
|
|
224
|
+
src={secondPhoto}
|
|
225
|
+
style={{
|
|
226
|
+
width: "100%",
|
|
227
|
+
height: "100%",
|
|
228
|
+
objectFit: "cover",
|
|
229
|
+
border: "4px solid #C65A7A",
|
|
230
|
+
borderRadius: "50%",
|
|
231
|
+
}}
|
|
232
|
+
/>
|
|
253
233
|
</div>
|
|
234
|
+
)}
|
|
254
235
|
|
|
255
|
-
|
|
236
|
+
{/* SECOND NAME + SIDE NOTE */}
|
|
237
|
+
<div
|
|
238
|
+
style={{
|
|
239
|
+
position: "absolute",
|
|
240
|
+
bottom: "23%",
|
|
241
|
+
right: "30%",
|
|
242
|
+
lineHeight: 1.2,
|
|
243
|
+
display: "flex",
|
|
244
|
+
flexDirection: "column",
|
|
245
|
+
alignItems: "center",
|
|
246
|
+
transform: `translateX(${secondTextX + exitRightX}px)`,
|
|
247
|
+
opacity: secondTextOpacity * exitOpacity,
|
|
248
|
+
}}
|
|
249
|
+
>
|
|
250
|
+
<h1
|
|
256
251
|
style={{
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
fontSize:
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
lineHeight: 1.2,
|
|
264
|
-
letterSpacing: "2px",
|
|
265
|
-
whiteSpace: "normal",
|
|
266
|
-
wordBreak: "break-word",
|
|
267
|
-
overflowWrap: "break-word",
|
|
268
|
-
...SmoothRevealFromTop20012026({
|
|
269
|
-
frame,
|
|
270
|
-
startFrame: DETAILS_START,
|
|
271
|
-
delay: 125,
|
|
272
|
-
})
|
|
273
|
-
|
|
252
|
+
fontFamily: "Dancing Script",
|
|
253
|
+
color: "#C65A7A",
|
|
254
|
+
fontSize: 80,
|
|
255
|
+
maxWidth: "90%",
|
|
256
|
+
textAlign: "center",
|
|
257
|
+
wordWrap: "break-word",
|
|
274
258
|
}}
|
|
275
259
|
>
|
|
276
|
-
{
|
|
277
|
-
</
|
|
260
|
+
{secondName}
|
|
261
|
+
</h1>
|
|
278
262
|
</div>
|
|
279
263
|
|
|
280
264
|
</AbsoluteFill>
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {
|
|
3
|
+
AbsoluteFill,
|
|
4
|
+
useCurrentFrame,
|
|
5
|
+
useVideoConfig,
|
|
6
|
+
interpolate,
|
|
7
|
+
Easing,
|
|
8
|
+
Img,
|
|
9
|
+
staticFile,
|
|
10
|
+
} from "remotion";
|
|
11
|
+
|
|
12
|
+
import { GroomBrideLoveScene20012026 } from "../Elements/GroomBrideLoveScene20012026.jsx";
|
|
13
|
+
import { SmoothRevealFromTop20012026 } from "../Elements/SmoothRevealFromTop20012026.jsx"
|
|
14
|
+
|
|
15
|
+
export const F20012026_04 = ({
|
|
16
|
+
eventDateTime,
|
|
17
|
+
venueName,
|
|
18
|
+
venueAddress,
|
|
19
|
+
familyMember,
|
|
20
|
+
fadeInDuration = 30,
|
|
21
|
+
}) => {
|
|
22
|
+
const frame = useCurrentFrame();
|
|
23
|
+
const { fps } = useVideoConfig();
|
|
24
|
+
|
|
25
|
+
/* ---------------- DATE UTILS ---------------- */
|
|
26
|
+
const getDateParts = (iso) => {
|
|
27
|
+
if (!iso) return { day: "", month: "", year: "", time: "" };
|
|
28
|
+
|
|
29
|
+
const d = new Date(iso);
|
|
30
|
+
if (isNaN(d.getTime())) {
|
|
31
|
+
return { day: "", month: "", year: "", time: "" };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
day: d.getDate(),
|
|
36
|
+
month: d.toLocaleString("en-US", { month: "long" }),
|
|
37
|
+
year: d.getFullYear(),
|
|
38
|
+
time: d.toLocaleTimeString("en-US", {
|
|
39
|
+
hour: "2-digit",
|
|
40
|
+
minute: "2-digit",
|
|
41
|
+
hour12: true,
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const { day, month, year, time } = getDateParts(eventDateTime);
|
|
47
|
+
|
|
48
|
+
const DETAILS_START = fps * 4;
|
|
49
|
+
|
|
50
|
+
/* ================= IMAGE ANIMATION ================= */
|
|
51
|
+
const showImageAfter = fadeInDuration * 2;
|
|
52
|
+
|
|
53
|
+
const imageOpacity = interpolate(
|
|
54
|
+
frame,
|
|
55
|
+
[showImageAfter, showImageAfter + fps * 1.2],
|
|
56
|
+
[0, 1],
|
|
57
|
+
{
|
|
58
|
+
extrapolateRight: "clamp",
|
|
59
|
+
easing: Easing.out(Easing.ease),
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const imageScale = interpolate(
|
|
64
|
+
frame,
|
|
65
|
+
[showImageAfter, showImageAfter + fps * 1.2],
|
|
66
|
+
[0.95, 1],
|
|
67
|
+
{
|
|
68
|
+
extrapolateRight: "clamp",
|
|
69
|
+
easing: Easing.out(Easing.cubic),
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
const imageTranslateY = interpolate(
|
|
73
|
+
frame,
|
|
74
|
+
[showImageAfter, showImageAfter + fps * 1.2],
|
|
75
|
+
[-200, 0], // 🔥 starts above and comes down
|
|
76
|
+
{
|
|
77
|
+
extrapolateRight: "clamp",
|
|
78
|
+
easing: Easing.out(Easing.ease),
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<AbsoluteFill
|
|
84
|
+
style={{
|
|
85
|
+
transformOrigin: "center center",
|
|
86
|
+
overflow: "hidden",
|
|
87
|
+
}}
|
|
88
|
+
>
|
|
89
|
+
<Img
|
|
90
|
+
src={staticFile("video-images/20012026-wedding-gate.webp")}
|
|
91
|
+
style={{
|
|
92
|
+
position: "absolute",
|
|
93
|
+
top: 0,
|
|
94
|
+
left: "50%",
|
|
95
|
+
width: "100%",
|
|
96
|
+
height: "100%",
|
|
97
|
+
opacity: imageOpacity,
|
|
98
|
+
transform: `
|
|
99
|
+
translateX(-50%)
|
|
100
|
+
translateY(${imageTranslateY}px)
|
|
101
|
+
scale(${imageScale})
|
|
102
|
+
`,
|
|
103
|
+
}}
|
|
104
|
+
/>
|
|
105
|
+
|
|
106
|
+
<GroomBrideLoveScene20012026 startAfter={3.5} />
|
|
107
|
+
|
|
108
|
+
<div
|
|
109
|
+
style={{
|
|
110
|
+
position: "absolute",
|
|
111
|
+
top: "24%",
|
|
112
|
+
width: "100%",
|
|
113
|
+
display: "flex",
|
|
114
|
+
flexDirection: "column",
|
|
115
|
+
alignItems: "center",
|
|
116
|
+
textAlign: "center",
|
|
117
|
+
zIndex: 5,
|
|
118
|
+
gap: "30px"
|
|
119
|
+
}}
|
|
120
|
+
>
|
|
121
|
+
<div
|
|
122
|
+
style={{
|
|
123
|
+
maxWidth: "50%",
|
|
124
|
+
fontFamily: "Playfair Display",
|
|
125
|
+
fontSize: 55,
|
|
126
|
+
fontWeight: "600",
|
|
127
|
+
color: "#3B2F2F",
|
|
128
|
+
lineHeight: 1.2,
|
|
129
|
+
letterSpacing: "2px",
|
|
130
|
+
whiteSpace: "normal",
|
|
131
|
+
wordBreak: "break-word",
|
|
132
|
+
overflowWrap: "break-word",
|
|
133
|
+
...SmoothRevealFromTop20012026({
|
|
134
|
+
frame,
|
|
135
|
+
startFrame: DETAILS_START,
|
|
136
|
+
delay: 0,
|
|
137
|
+
})
|
|
138
|
+
}}
|
|
139
|
+
>
|
|
140
|
+
{venueName}
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div
|
|
144
|
+
style={{
|
|
145
|
+
maxWidth: "80%",
|
|
146
|
+
fontFamily: "Playfair Display",
|
|
147
|
+
fontSize: 50,
|
|
148
|
+
fontWeight: "600",
|
|
149
|
+
color: "#5A4A42",
|
|
150
|
+
lineHeight: 1.2,
|
|
151
|
+
letterSpacing: "2px",
|
|
152
|
+
whiteSpace: "normal",
|
|
153
|
+
wordBreak: "break-word",
|
|
154
|
+
overflowWrap: "break-word",
|
|
155
|
+
...SmoothRevealFromTop20012026({
|
|
156
|
+
frame,
|
|
157
|
+
startFrame: DETAILS_START,
|
|
158
|
+
delay: 25,
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
}}
|
|
162
|
+
>
|
|
163
|
+
{venueAddress}
|
|
164
|
+
</div>
|
|
165
|
+
<div
|
|
166
|
+
style={{
|
|
167
|
+
fontFamily: "Great Vibes",
|
|
168
|
+
fontSize: 55,
|
|
169
|
+
fontWeight: "600",
|
|
170
|
+
color: "#6B1E2E",
|
|
171
|
+
lineHeight: 1.2,
|
|
172
|
+
letterSpacing: "3px",
|
|
173
|
+
whiteSpace: "normal",
|
|
174
|
+
wordBreak: "break-word",
|
|
175
|
+
overflowWrap: "break-word",
|
|
176
|
+
...SmoothRevealFromTop20012026({
|
|
177
|
+
frame,
|
|
178
|
+
startFrame: DETAILS_START,
|
|
179
|
+
delay: 50,
|
|
180
|
+
})
|
|
181
|
+
|
|
182
|
+
}}
|
|
183
|
+
>
|
|
184
|
+
On the joyous occasion
|
|
185
|
+
</div>
|
|
186
|
+
<div
|
|
187
|
+
style={{
|
|
188
|
+
maxWidth: "80%",
|
|
189
|
+
display: "flex",
|
|
190
|
+
gap: 18,
|
|
191
|
+
fontFamily: "Playfair Display",
|
|
192
|
+
fontSize: 50,
|
|
193
|
+
fontWeight: "600",
|
|
194
|
+
color: "#6B1E2E",
|
|
195
|
+
lineHeight: 1.2,
|
|
196
|
+
letterSpacing: "2px",
|
|
197
|
+
whiteSpace: "normal",
|
|
198
|
+
wordBreak: "break-word",
|
|
199
|
+
overflowWrap: "break-word",
|
|
200
|
+
...SmoothRevealFromTop20012026({
|
|
201
|
+
frame,
|
|
202
|
+
startFrame: DETAILS_START,
|
|
203
|
+
delay: 70,
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
}}
|
|
207
|
+
>
|
|
208
|
+
<span>{day}</span>
|
|
209
|
+
<span>{month}</span>
|
|
210
|
+
<span>{year}</span>
|
|
211
|
+
</div>
|
|
212
|
+
<div
|
|
213
|
+
style={{
|
|
214
|
+
fontFamily: "Great Vibes",
|
|
215
|
+
fontSize: 55,
|
|
216
|
+
fontWeight: "600",
|
|
217
|
+
color: "#4B3A28",
|
|
218
|
+
lineHeight: 1.2,
|
|
219
|
+
letterSpacing: "2px",
|
|
220
|
+
whiteSpace: "normal",
|
|
221
|
+
wordBreak: "break-word",
|
|
222
|
+
overflowWrap: "break-word",
|
|
223
|
+
...SmoothRevealFromTop20012026({
|
|
224
|
+
frame,
|
|
225
|
+
startFrame: DETAILS_START,
|
|
226
|
+
delay: 95,
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
}}
|
|
230
|
+
>
|
|
231
|
+
Wedding Time
|
|
232
|
+
</div>
|
|
233
|
+
<div
|
|
234
|
+
style={{
|
|
235
|
+
fontSize: 50,
|
|
236
|
+
fontWeight: "600",
|
|
237
|
+
color: "#4B3A28",
|
|
238
|
+
fontFamily: "Playfair Display",
|
|
239
|
+
lineHeight: 1.2,
|
|
240
|
+
letterSpacing: "2px",
|
|
241
|
+
whiteSpace: "normal",
|
|
242
|
+
wordBreak: "break-word",
|
|
243
|
+
overflowWrap: "break-word",
|
|
244
|
+
...SmoothRevealFromTop20012026({
|
|
245
|
+
frame,
|
|
246
|
+
startFrame: DETAILS_START,
|
|
247
|
+
delay: 115,
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
}}
|
|
251
|
+
>
|
|
252
|
+
{time}
|
|
253
|
+
</div>
|
|
254
|
+
|
|
255
|
+
<div
|
|
256
|
+
style={{
|
|
257
|
+
maxWidth: "70%",
|
|
258
|
+
fontFamily: "Playfair Display",
|
|
259
|
+
fontSize: 40,
|
|
260
|
+
fontWeight: "600",
|
|
261
|
+
lineHeight: 1.2,
|
|
262
|
+
color: "#7A5C3E",
|
|
263
|
+
lineHeight: 1.2,
|
|
264
|
+
letterSpacing: "2px",
|
|
265
|
+
whiteSpace: "normal",
|
|
266
|
+
wordBreak: "break-word",
|
|
267
|
+
overflowWrap: "break-word",
|
|
268
|
+
...SmoothRevealFromTop20012026({
|
|
269
|
+
frame,
|
|
270
|
+
startFrame: DETAILS_START,
|
|
271
|
+
delay: 125,
|
|
272
|
+
})
|
|
273
|
+
|
|
274
|
+
}}
|
|
275
|
+
>
|
|
276
|
+
{familyMember}
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
</AbsoluteFill>
|
|
281
|
+
);
|
|
282
|
+
};
|
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
Sequence,
|
|
4
4
|
useVideoConfig,
|
|
5
5
|
Audio,
|
|
6
|
-
staticFile,
|
|
7
6
|
AbsoluteFill,
|
|
8
7
|
Img,
|
|
9
8
|
useCurrentFrame,
|
|
@@ -114,18 +113,19 @@ export const T03022026_01 = ({
|
|
|
114
113
|
venue?.address || formData?.venue_address || "";
|
|
115
114
|
|
|
116
115
|
/* ---------------- PRELOAD IMAGES ---------------- */
|
|
116
|
+
const S3_BASE = "https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/";
|
|
117
117
|
|
|
118
118
|
const imagesToPreload = useMemo(
|
|
119
119
|
() => [
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
120
|
+
`${S3_BASE}03022026-bg.webp`,
|
|
121
|
+
`${S3_BASE}03022026-bg-2.webp`,
|
|
122
|
+
`${S3_BASE}03022026-bg-3.webp`,
|
|
123
|
+
`${S3_BASE}03022026-bg-4.webp`,
|
|
124
|
+
`${S3_BASE}03022026-bg-5.webp`,
|
|
125
|
+
`${S3_BASE}03022026-krishnaradha.webp`,
|
|
126
|
+
`${S3_BASE}03022026-krishnaradha-2.webp`,
|
|
127
|
+
`${S3_BASE}03022026-krishnaradha-4.webp`,
|
|
128
|
+
`${S3_BASE}03022026-krishnaradha-5.webp`,
|
|
129
129
|
],
|
|
130
130
|
[]
|
|
131
131
|
);
|
|
@@ -150,20 +150,20 @@ export const T03022026_01 = ({
|
|
|
150
150
|
|
|
151
151
|
const backgrounds = useMemo(
|
|
152
152
|
() => [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
`${S3_BASE}03022026-bg.webp`,
|
|
154
|
+
`${S3_BASE}03022026-bg-2.webp`,
|
|
155
|
+
`${S3_BASE}03022026-bg-3.webp`,
|
|
156
|
+
`${S3_BASE}03022026-bg-4.webp`,
|
|
157
|
+
`${S3_BASE}03022026-bg-5.webp`,
|
|
158
158
|
],
|
|
159
|
-
[]
|
|
159
|
+
[S3_BASE]
|
|
160
160
|
);
|
|
161
161
|
|
|
162
162
|
return (
|
|
163
163
|
<AbsoluteFill>
|
|
164
164
|
{/* 🎵 MUSIC */}
|
|
165
165
|
<Audio
|
|
166
|
-
src={
|
|
166
|
+
src={`${S3_BASE}wedding2.mp3`}
|
|
167
167
|
volume={musicVolume}
|
|
168
168
|
/>
|
|
169
169
|
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
import { F20012026_01 } from "../Frames/F20012026_01.jsx";
|
|
15
15
|
import { F20012026_02 } from "../Frames/F20012026_02.jsx";
|
|
16
16
|
import { F20012026_03 } from "../Frames/F20012026_03.jsx";
|
|
17
|
+
import { F20012026_04 } from "../Frames/F20012026_04.jsx";
|
|
17
18
|
import { InkSmokeTransition20012026 } from "../Elements/InkSmokeTransition20012026.jsx";
|
|
18
19
|
import { usePreloadImages } from "../hooks/usePreloadImages.js";
|
|
19
20
|
|
|
@@ -149,6 +150,7 @@ export const T20012026_01 = ({
|
|
|
149
150
|
const backgrounds = useMemo(
|
|
150
151
|
() => [
|
|
151
152
|
staticFile("video-images/20012026-bg.webp"),
|
|
153
|
+
staticFile("video-images/20012026-bg-2.webp"),
|
|
152
154
|
],
|
|
153
155
|
[]
|
|
154
156
|
);
|
|
@@ -178,7 +180,7 @@ export const T20012026_01 = ({
|
|
|
178
180
|
from={scene1Duration}
|
|
179
181
|
durationInFrames={transitionDuration}
|
|
180
182
|
>
|
|
181
|
-
<Page bg={backgrounds[
|
|
183
|
+
<Page bg={backgrounds[1]}>
|
|
182
184
|
<InkSmokeTransition20012026 />
|
|
183
185
|
</Page>
|
|
184
186
|
</Sequence>
|
|
@@ -188,7 +190,7 @@ export const T20012026_01 = ({
|
|
|
188
190
|
from={scene1Duration + transitionDuration}
|
|
189
191
|
durationInFrames={scene2Duration}
|
|
190
192
|
>
|
|
191
|
-
<Page bg={backgrounds[
|
|
193
|
+
<Page bg={backgrounds[1]}>
|
|
192
194
|
<F20012026_02
|
|
193
195
|
firstName={firstName}
|
|
194
196
|
secondName={secondName}
|
|
@@ -206,7 +208,7 @@ export const T20012026_01 = ({
|
|
|
206
208
|
from={scene1Duration + transitionDuration + scene2Duration}
|
|
207
209
|
durationInFrames={transitionDuration}
|
|
208
210
|
>
|
|
209
|
-
<Page bg={backgrounds[
|
|
211
|
+
<Page bg={backgrounds[1]}>
|
|
210
212
|
<InkSmokeTransition20012026 />
|
|
211
213
|
</Page>
|
|
212
214
|
</Sequence>
|
|
@@ -218,6 +220,31 @@ export const T20012026_01 = ({
|
|
|
218
220
|
>
|
|
219
221
|
<Page bg={backgrounds[0]}>
|
|
220
222
|
<F20012026_03
|
|
223
|
+
firstName={firstName}
|
|
224
|
+
firstPhoto={firstPhoto}
|
|
225
|
+
secondName={secondName}
|
|
226
|
+
secondPhoto={secondPhoto}
|
|
227
|
+
/>
|
|
228
|
+
</Page>
|
|
229
|
+
</Sequence>
|
|
230
|
+
|
|
231
|
+
{/* ☁️ TRANSITION 3 */}
|
|
232
|
+
<Sequence
|
|
233
|
+
from={scene1Duration + transitionDuration + scene2Duration}
|
|
234
|
+
durationInFrames={transitionDuration}
|
|
235
|
+
>
|
|
236
|
+
<Page bg={backgrounds[1]}>
|
|
237
|
+
<InkSmokeTransition20012026 />
|
|
238
|
+
</Page>
|
|
239
|
+
</Sequence>
|
|
240
|
+
|
|
241
|
+
{/* ================= SCENE 4================= */}
|
|
242
|
+
<Sequence
|
|
243
|
+
from={scene1Duration + transitionDuration + scene2Duration + transitionDuration}
|
|
244
|
+
durationInFrames={scene3Duration}
|
|
245
|
+
>
|
|
246
|
+
<Page bg={backgrounds[0]}>
|
|
247
|
+
<F20012026_04
|
|
221
248
|
eventDateTime={eventDateTime}
|
|
222
249
|
venueName={venueName}
|
|
223
250
|
venueAddress={venueAddress}
|
|
@@ -230,4 +257,4 @@ export const T20012026_01 = ({
|
|
|
230
257
|
);
|
|
231
258
|
};
|
|
232
259
|
|
|
233
|
-
T20012026_01.duration = 24 *
|
|
260
|
+
T20012026_01.duration = 24 * 40;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import { staticFile } from "remotion";
|
|
3
|
-
|
|
4
1
|
let registered = false;
|
|
5
2
|
|
|
6
3
|
export const registerFonts = () => {
|
|
@@ -10,21 +7,19 @@ export const registerFonts = () => {
|
|
|
10
7
|
const fonts = [
|
|
11
8
|
{
|
|
12
9
|
family: "Great Vibes",
|
|
13
|
-
url:
|
|
10
|
+
url: "https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/Fonts/GreatVibes-Regular.ttf",
|
|
14
11
|
format: "truetype",
|
|
15
12
|
weight: "400",
|
|
16
13
|
},
|
|
17
14
|
{
|
|
18
15
|
family: "Dancing Script",
|
|
19
|
-
url:
|
|
20
|
-
),
|
|
16
|
+
url: "https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/Fonts/DancingScript-VariableFont_wght.ttf",
|
|
21
17
|
format: "truetype",
|
|
22
18
|
weight: "100 700",
|
|
23
19
|
},
|
|
24
20
|
{
|
|
25
21
|
family: "Playfair Display",
|
|
26
|
-
url:
|
|
27
|
-
),
|
|
22
|
+
url:"https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/Fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf",
|
|
28
23
|
format: "truetype",
|
|
29
24
|
weight: "100 900",
|
|
30
25
|
},
|
|
Binary file
|
|
Binary file
|