@evatril/video-templates 2.0.4 → 2.0.6
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
CHANGED
|
@@ -9,17 +9,17 @@ import {
|
|
|
9
9
|
staticFile
|
|
10
10
|
} from "remotion";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { Butterflies20012026 } from "../Elements/Butterflies20012026.jsx";
|
|
13
13
|
import { OpeningGate20012026 } from "../Elements/OpeningGate20012026.jsx";
|
|
14
14
|
import { CoupleWalk20012026 } from "../Elements/CoupleWalk20012026.jsx";
|
|
15
|
-
import {FlowersSide20012026} from "../Elements/FlowersSide20012026.jsx";
|
|
15
|
+
import { FlowersSide20012026 } from "../Elements/FlowersSide20012026.jsx";
|
|
16
16
|
|
|
17
17
|
export const F20012026_01 = ({
|
|
18
18
|
firstName, secondName, welcomeMessage,
|
|
19
19
|
}) => {
|
|
20
20
|
/* -------------------- HOOKS (ONLY HERE) -------------------- */
|
|
21
21
|
const frame = useCurrentFrame();
|
|
22
|
-
const { fps, width, height
|
|
22
|
+
const { fps, width, height } = useVideoConfig();
|
|
23
23
|
|
|
24
24
|
/* -------------------- MESSAGE REVEAL -------------------- */
|
|
25
25
|
const messageStart = fps * 4;
|
|
@@ -58,6 +58,8 @@ export const F20012026_01 = ({
|
|
|
58
58
|
const groomAnim = reveal(groomStart);
|
|
59
59
|
return (
|
|
60
60
|
<AbsoluteFill style={{ overflow: "hidden" }}>
|
|
61
|
+
|
|
62
|
+
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
61
63
|
{/* ================= BACKGROUND ================= */}
|
|
62
64
|
<Img
|
|
63
65
|
src={staticFile("video-images/20012026-bg.png")}
|
|
@@ -154,7 +156,7 @@ export const F20012026_01 = ({
|
|
|
154
156
|
|
|
155
157
|
<h1
|
|
156
158
|
style={{
|
|
157
|
-
width: "100%",
|
|
159
|
+
width: "100%",
|
|
158
160
|
maxWidth: "80%",
|
|
159
161
|
fontFamily: "Playfair Display",
|
|
160
162
|
color: "#6B1E2E",
|
|
@@ -171,7 +173,7 @@ export const F20012026_01 = ({
|
|
|
171
173
|
|
|
172
174
|
}}
|
|
173
175
|
>
|
|
174
|
-
{secondName}
|
|
176
|
+
{secondName}
|
|
175
177
|
</h1>
|
|
176
178
|
</div>
|
|
177
179
|
</div>
|
|
@@ -13,22 +13,12 @@ import { SideTrees20012026 } from "../Elements/SideTrees20012026.jsx";
|
|
|
13
13
|
import { PeacockDance20012026 } from "../Elements/PeacockDance20012026.jsx";
|
|
14
14
|
import { SmoothRevealFromTop } from "../Elements/SmoothRevealFromTop.jsx";
|
|
15
15
|
|
|
16
|
-
export const F20012026_02 = ({ firstName, secondName,firstSideNote,secondSideNote, invitationMessage
|
|
16
|
+
export const F20012026_02 = ({ firstName, secondName, firstSideNote, secondSideNote, invitationMessage, occasionDate, fadeInDuration = 30,
|
|
17
17
|
}) => {
|
|
18
18
|
const frame = useCurrentFrame();
|
|
19
19
|
const { fps } = useVideoConfig();
|
|
20
20
|
|
|
21
21
|
/* ================= SCENE FADE + ZOOM ================= */
|
|
22
|
-
const sceneOpacity = interpolate(
|
|
23
|
-
frame,
|
|
24
|
-
[0, fadeInDuration],
|
|
25
|
-
[0, 1],
|
|
26
|
-
{
|
|
27
|
-
extrapolateRight: "clamp",
|
|
28
|
-
easing: Easing.out(Easing.ease),
|
|
29
|
-
}
|
|
30
|
-
);
|
|
31
|
-
|
|
32
22
|
// 🎥 VERY SMOOTH CINEMATIC ZOOM
|
|
33
23
|
const sceneScale = interpolate(
|
|
34
24
|
frame,
|
|
@@ -42,19 +32,19 @@ export const F20012026_02 = ({ firstName, secondName,firstSideNote,secondSideNot
|
|
|
42
32
|
|
|
43
33
|
/* ================= SAFE DATE FORMAT ================= */
|
|
44
34
|
const formatDate = (date) => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
35
|
+
if (!date) return "";
|
|
36
|
+
const d = new Date(date);
|
|
37
|
+
if (isNaN(d.getTime())) return "";
|
|
48
38
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
39
|
+
return d.toLocaleDateString("en-IN", {
|
|
40
|
+
day: "numeric",
|
|
41
|
+
month: "long",
|
|
42
|
+
year: "numeric",
|
|
43
|
+
});
|
|
44
|
+
};
|
|
55
45
|
|
|
56
46
|
|
|
57
|
-
|
|
47
|
+
const DETAILS_START = fps * 3;
|
|
58
48
|
|
|
59
49
|
/* ================= IMAGE ANIMATION ================= */
|
|
60
50
|
const showImageAfter = fadeInDuration * 1;
|
|
@@ -80,232 +70,234 @@ export const F20012026_02 = ({ firstName, secondName,firstSideNote,secondSideNot
|
|
|
80
70
|
);
|
|
81
71
|
|
|
82
72
|
return (
|
|
83
|
-
<AbsoluteFill
|
|
84
|
-
style={{
|
|
85
|
-
|
|
86
|
-
transform: `scale(${sceneScale})`,
|
|
87
|
-
transformOrigin: "center center",
|
|
88
|
-
overflow: "hidden",
|
|
89
|
-
|
|
90
|
-
}}
|
|
91
|
-
>
|
|
92
|
-
{/* ================= BACKGROUND ================= */}
|
|
93
|
-
<Img
|
|
94
|
-
src={staticFile("video-images/20012026-bg.png")}
|
|
73
|
+
<AbsoluteFill>
|
|
74
|
+
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
75
|
+
<AbsoluteFill
|
|
95
76
|
style={{
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
objectFit: "cover",
|
|
100
|
-
}}
|
|
101
|
-
/>
|
|
77
|
+
transform: `scale(${sceneScale})`,
|
|
78
|
+
transformOrigin: "center center",
|
|
79
|
+
overflow: "hidden",
|
|
102
80
|
|
|
103
|
-
<Img
|
|
104
|
-
src={staticFile("video-images/20012026-curtain-floral.png")}
|
|
105
|
-
style={{
|
|
106
|
-
position: "absolute",
|
|
107
|
-
left: "50%",
|
|
108
|
-
width: "100%",
|
|
109
|
-
opacity: imageOpacity,
|
|
110
|
-
transform: `translateX(-50%) scale(${imageScale})`,
|
|
111
|
-
}}
|
|
112
|
-
/>
|
|
113
|
-
|
|
114
|
-
{/* ================= DECORATIONS ================= */}
|
|
115
|
-
<SideTrees20012026 startAfter={2} />
|
|
116
|
-
<PeacockDance20012026 startAfter={3} />
|
|
117
|
-
|
|
118
|
-
<div
|
|
119
|
-
style={{
|
|
120
|
-
position: "relative",
|
|
121
|
-
top: "26%",
|
|
122
|
-
width: "100%",
|
|
123
|
-
display: "flex",
|
|
124
|
-
flexDirection: "column",
|
|
125
|
-
alignItems: "center",
|
|
126
|
-
textAlign: "center",
|
|
127
|
-
gap: "15px"
|
|
128
81
|
}}
|
|
129
82
|
>
|
|
130
|
-
{/*
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
maxWidth: "50%",
|
|
134
|
-
fontFamily: "Dancing Script",
|
|
135
|
-
color: "#4A3A2A",
|
|
136
|
-
fontSize: 40,
|
|
137
|
-
fontWeight: "500",
|
|
138
|
-
lineHeight: 1.2,
|
|
139
|
-
letterSpacing: "2px",
|
|
140
|
-
...SmoothRevealFromTop({
|
|
141
|
-
frame,
|
|
142
|
-
startFrame: DETAILS_START,
|
|
143
|
-
delay: 0,
|
|
144
|
-
})
|
|
145
|
-
}}
|
|
146
|
-
>
|
|
147
|
-
{invitationMessage}
|
|
148
|
-
</div>
|
|
149
|
-
|
|
150
|
-
{/* Bride Name */}
|
|
151
|
-
<h1
|
|
83
|
+
{/* ================= BACKGROUND ================= */}
|
|
84
|
+
<Img
|
|
85
|
+
src={staticFile("video-images/20012026-bg.png")}
|
|
152
86
|
style={{
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
fontWeight: "600",
|
|
158
|
-
lineHeight: 1.2,
|
|
159
|
-
letterSpacing: "3px",
|
|
160
|
-
whiteSpace: "normal",
|
|
161
|
-
wordBreak: "break-word",
|
|
162
|
-
overflowWrap: "break-word",
|
|
163
|
-
...SmoothRevealFromTop({
|
|
164
|
-
frame,
|
|
165
|
-
startFrame: DETAILS_START,
|
|
166
|
-
delay: 25,
|
|
167
|
-
})
|
|
87
|
+
position: "absolute",
|
|
88
|
+
width: "100%",
|
|
89
|
+
height: "100%",
|
|
90
|
+
objectFit: "cover",
|
|
168
91
|
}}
|
|
169
|
-
|
|
170
|
-
{firstName}
|
|
171
|
-
</h1>
|
|
92
|
+
/>
|
|
172
93
|
|
|
173
|
-
|
|
174
|
-
|
|
94
|
+
<Img
|
|
95
|
+
src={staticFile("video-images/20012026-curtain-floral.png")}
|
|
175
96
|
style={{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
lineHeight: 1.2,
|
|
182
|
-
letterSpacing: "2px",
|
|
183
|
-
whiteSpace: "normal",
|
|
184
|
-
wordBreak: "break-word",
|
|
185
|
-
overflowWrap: "break-word",
|
|
186
|
-
...SmoothRevealFromTop({
|
|
187
|
-
frame,
|
|
188
|
-
startFrame: DETAILS_START,
|
|
189
|
-
delay: 50,
|
|
190
|
-
})
|
|
97
|
+
position: "absolute",
|
|
98
|
+
left: "50%",
|
|
99
|
+
width: "100%",
|
|
100
|
+
opacity: imageOpacity,
|
|
101
|
+
transform: `translateX(-50%) scale(${imageScale})`,
|
|
191
102
|
}}
|
|
192
|
-
|
|
193
|
-
{firstSideNote}
|
|
194
|
-
</div>
|
|
103
|
+
/>
|
|
195
104
|
|
|
196
|
-
{/*
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
fontSize: 40,
|
|
200
|
-
color: "#C9A24D",
|
|
201
|
-
letterSpacing: "6px",
|
|
202
|
-
...SmoothRevealFromTop({
|
|
203
|
-
frame,
|
|
204
|
-
startFrame: DETAILS_START,
|
|
205
|
-
delay: 70,
|
|
206
|
-
})
|
|
207
|
-
}}
|
|
208
|
-
>
|
|
209
|
-
❁ ❁ ❁
|
|
210
|
-
</div>
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
{/* Groom Name */}
|
|
214
|
-
<h1
|
|
215
|
-
style={{
|
|
216
|
-
maxWidth: "70%",
|
|
217
|
-
fontFamily: "Playfair Display",
|
|
218
|
-
color: "#7A1E2E",
|
|
219
|
-
fontSize: 60,
|
|
220
|
-
fontWeight: "600",
|
|
221
|
-
lineHeight: 1.2,
|
|
222
|
-
letterSpacing: "3px",
|
|
223
|
-
whiteSpace: "normal",
|
|
224
|
-
wordBreak: "break-word",
|
|
225
|
-
overflowWrap: "break-word",
|
|
226
|
-
...SmoothRevealFromTop({
|
|
227
|
-
frame,
|
|
228
|
-
startFrame: DETAILS_START,
|
|
229
|
-
delay: 95,
|
|
230
|
-
})
|
|
231
|
-
}}
|
|
232
|
-
>
|
|
233
|
-
{secondName}
|
|
234
|
-
</h1>
|
|
235
|
-
|
|
236
|
-
{/* Groom Side Note */}
|
|
237
|
-
<div
|
|
238
|
-
style={{
|
|
239
|
-
maxWidth: "70%",
|
|
240
|
-
fontFamily: "Dancing Script",
|
|
241
|
-
color: "#B87A6A",
|
|
242
|
-
fontSize: 40,
|
|
243
|
-
fontWeight: "600",
|
|
244
|
-
lineHeight: 1.2,
|
|
245
|
-
letterSpacing: "2px",
|
|
246
|
-
whiteSpace: "normal",
|
|
247
|
-
wordBreak: "break-word",
|
|
248
|
-
overflowWrap: "break-word",
|
|
249
|
-
...SmoothRevealFromTop({
|
|
250
|
-
frame,
|
|
251
|
-
startFrame: DETAILS_START,
|
|
252
|
-
delay: 120,
|
|
253
|
-
})
|
|
254
|
-
}}
|
|
255
|
-
>
|
|
256
|
-
{secondSideNote}
|
|
257
|
-
</div>
|
|
105
|
+
{/* ================= DECORATIONS ================= */}
|
|
106
|
+
<SideTrees20012026 startAfter={2} />
|
|
107
|
+
<PeacockDance20012026 startAfter={3} />
|
|
258
108
|
|
|
259
|
-
{/* Date */}
|
|
260
109
|
<div
|
|
261
110
|
style={{
|
|
262
|
-
|
|
263
|
-
|
|
111
|
+
position: "relative",
|
|
112
|
+
top: "26%",
|
|
113
|
+
width: "100%",
|
|
114
|
+
display: "flex",
|
|
115
|
+
flexDirection: "column",
|
|
116
|
+
alignItems: "center",
|
|
264
117
|
textAlign: "center",
|
|
265
|
-
|
|
266
|
-
frame,
|
|
267
|
-
startFrame: DETAILS_START,
|
|
268
|
-
delay: 145,
|
|
269
|
-
})
|
|
118
|
+
gap: "15px"
|
|
270
119
|
}}
|
|
271
120
|
>
|
|
272
|
-
{/*
|
|
121
|
+
{/* Invitation Message */}
|
|
273
122
|
<div
|
|
274
123
|
style={{
|
|
275
|
-
|
|
276
|
-
fontFamily:"
|
|
124
|
+
maxWidth: "50%",
|
|
125
|
+
fontFamily: "Dancing Script",
|
|
126
|
+
color: "#4A3A2A",
|
|
127
|
+
fontSize: 40,
|
|
277
128
|
fontWeight: "500",
|
|
129
|
+
lineHeight: 1.2,
|
|
130
|
+
letterSpacing: "2px",
|
|
131
|
+
...SmoothRevealFromTop({
|
|
132
|
+
frame,
|
|
133
|
+
startFrame: DETAILS_START,
|
|
134
|
+
delay: 0,
|
|
135
|
+
})
|
|
136
|
+
}}
|
|
137
|
+
>
|
|
138
|
+
{invitationMessage}
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
{/* Bride Name */}
|
|
142
|
+
<h1
|
|
143
|
+
style={{
|
|
144
|
+
maxWidth: "70%",
|
|
145
|
+
fontFamily: "Playfair Display",
|
|
146
|
+
color: "#7A1E2E",
|
|
147
|
+
fontSize: 60,
|
|
148
|
+
fontWeight: "600",
|
|
149
|
+
lineHeight: 1.2,
|
|
278
150
|
letterSpacing: "3px",
|
|
279
|
-
|
|
151
|
+
whiteSpace: "normal",
|
|
152
|
+
wordBreak: "break-word",
|
|
153
|
+
overflowWrap: "break-word",
|
|
154
|
+
...SmoothRevealFromTop({
|
|
155
|
+
frame,
|
|
156
|
+
startFrame: DETAILS_START,
|
|
157
|
+
delay: 25,
|
|
158
|
+
})
|
|
159
|
+
}}
|
|
160
|
+
>
|
|
161
|
+
{firstName}
|
|
162
|
+
</h1>
|
|
163
|
+
|
|
164
|
+
{/* Bride Side Note */}
|
|
165
|
+
<div
|
|
166
|
+
style={{
|
|
167
|
+
maxWidth: "60%",
|
|
168
|
+
fontFamily: "Dancing Script",
|
|
169
|
+
color: "#B87A6A",
|
|
170
|
+
fontSize: 40,
|
|
171
|
+
fontWeight: "600",
|
|
280
172
|
lineHeight: 1.2,
|
|
281
|
-
|
|
282
|
-
whiteSpace: "
|
|
173
|
+
letterSpacing: "2px",
|
|
174
|
+
whiteSpace: "normal",
|
|
175
|
+
wordBreak: "break-word",
|
|
176
|
+
overflowWrap: "break-word",
|
|
177
|
+
...SmoothRevealFromTop({
|
|
178
|
+
frame,
|
|
179
|
+
startFrame: DETAILS_START,
|
|
180
|
+
delay: 50,
|
|
181
|
+
})
|
|
182
|
+
}}
|
|
183
|
+
>
|
|
184
|
+
{firstSideNote}
|
|
185
|
+
</div>
|
|
283
186
|
|
|
187
|
+
{/* & Symbol */}
|
|
188
|
+
<div
|
|
189
|
+
style={{
|
|
190
|
+
fontSize: 40,
|
|
191
|
+
color: "#C9A24D",
|
|
192
|
+
letterSpacing: "6px",
|
|
193
|
+
...SmoothRevealFromTop({
|
|
194
|
+
frame,
|
|
195
|
+
startFrame: DETAILS_START,
|
|
196
|
+
delay: 70,
|
|
197
|
+
})
|
|
284
198
|
}}
|
|
285
199
|
>
|
|
286
|
-
|
|
200
|
+
❁ ❁ ❁
|
|
287
201
|
</div>
|
|
288
202
|
|
|
289
|
-
|
|
203
|
+
|
|
204
|
+
{/* Groom Name */}
|
|
205
|
+
<h1
|
|
206
|
+
style={{
|
|
207
|
+
maxWidth: "70%",
|
|
208
|
+
fontFamily: "Playfair Display",
|
|
209
|
+
color: "#7A1E2E",
|
|
210
|
+
fontSize: 60,
|
|
211
|
+
fontWeight: "600",
|
|
212
|
+
lineHeight: 1.2,
|
|
213
|
+
letterSpacing: "3px",
|
|
214
|
+
whiteSpace: "normal",
|
|
215
|
+
wordBreak: "break-word",
|
|
216
|
+
overflowWrap: "break-word",
|
|
217
|
+
...SmoothRevealFromTop({
|
|
218
|
+
frame,
|
|
219
|
+
startFrame: DETAILS_START,
|
|
220
|
+
delay: 95,
|
|
221
|
+
})
|
|
222
|
+
}}
|
|
223
|
+
>
|
|
224
|
+
{secondName}
|
|
225
|
+
</h1>
|
|
226
|
+
|
|
227
|
+
{/* Groom Side Note */}
|
|
290
228
|
<div
|
|
291
229
|
style={{
|
|
292
|
-
|
|
293
|
-
fontFamily:"
|
|
294
|
-
|
|
295
|
-
|
|
230
|
+
maxWidth: "70%",
|
|
231
|
+
fontFamily: "Dancing Script",
|
|
232
|
+
color: "#B87A6A",
|
|
233
|
+
fontSize: 40,
|
|
234
|
+
fontWeight: "600",
|
|
296
235
|
lineHeight: 1.2,
|
|
297
|
-
letterSpacing: "
|
|
298
|
-
whiteSpace: "
|
|
236
|
+
letterSpacing: "2px",
|
|
237
|
+
whiteSpace: "normal",
|
|
238
|
+
wordBreak: "break-word",
|
|
239
|
+
overflowWrap: "break-word",
|
|
240
|
+
...SmoothRevealFromTop({
|
|
241
|
+
frame,
|
|
242
|
+
startFrame: DETAILS_START,
|
|
243
|
+
delay: 120,
|
|
244
|
+
})
|
|
299
245
|
}}
|
|
300
246
|
>
|
|
301
|
-
{
|
|
247
|
+
{secondSideNote}
|
|
302
248
|
</div>
|
|
303
|
-
</div>
|
|
304
249
|
|
|
250
|
+
{/* Date */}
|
|
251
|
+
<div
|
|
252
|
+
style={{
|
|
253
|
+
maxWidth: "70%",
|
|
254
|
+
marginTop: 20,
|
|
255
|
+
textAlign: "center",
|
|
256
|
+
...SmoothRevealFromTop({
|
|
257
|
+
frame,
|
|
258
|
+
startFrame: DETAILS_START,
|
|
259
|
+
delay: 145,
|
|
260
|
+
})
|
|
261
|
+
}}
|
|
262
|
+
>
|
|
263
|
+
{/* -------- Message Line -------- */}
|
|
264
|
+
<div
|
|
265
|
+
style={{
|
|
266
|
+
fontSize: 45,
|
|
267
|
+
fontFamily: "Great Vibes",
|
|
268
|
+
fontWeight: "500",
|
|
269
|
+
letterSpacing: "3px",
|
|
270
|
+
color: "#2F6B4F",
|
|
271
|
+
lineHeight: 1.2,
|
|
272
|
+
marginBottom: 8,
|
|
273
|
+
whiteSpace: "nowrap",
|
|
274
|
+
|
|
275
|
+
}}
|
|
276
|
+
>
|
|
277
|
+
– Join us on this auspicious day –
|
|
278
|
+
</div>
|
|
305
279
|
|
|
306
|
-
|
|
280
|
+
{/* -------- Date Line -------- */}
|
|
281
|
+
<div
|
|
282
|
+
style={{
|
|
283
|
+
fontSize: 55,
|
|
284
|
+
fontFamily: "Playfair Display",
|
|
285
|
+
fontWeight: "400",
|
|
286
|
+
color: "#5A4632",
|
|
287
|
+
lineHeight: 1.2,
|
|
288
|
+
letterSpacing: "4px",
|
|
289
|
+
whiteSpace: "nowrap", // 🔥 force single line
|
|
290
|
+
}}
|
|
291
|
+
>
|
|
292
|
+
{formatDate(occasionDate)}
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
</div>
|
|
307
298
|
|
|
308
299
|
|
|
300
|
+
</AbsoluteFill>
|
|
309
301
|
</AbsoluteFill>
|
|
310
302
|
);
|
|
311
303
|
};
|
|
@@ -23,16 +23,6 @@ export const F20012026_03 = ({
|
|
|
23
23
|
const { fps } = useVideoConfig();
|
|
24
24
|
|
|
25
25
|
/* ================= SCENE REVEAL (SMOKE FOLLOW-UP) ================= */
|
|
26
|
-
const sceneOpacity = interpolate(
|
|
27
|
-
frame,
|
|
28
|
-
[0, fadeInDuration],
|
|
29
|
-
[0, 1],
|
|
30
|
-
{
|
|
31
|
-
extrapolateRight: "clamp",
|
|
32
|
-
easing: Easing.out(Easing.ease),
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
|
|
36
26
|
// 🎥 VERY SMOOTH CINEMATIC ZOOM
|
|
37
27
|
const sceneScale = interpolate(
|
|
38
28
|
frame,
|
|
@@ -102,9 +92,10 @@ export const F20012026_03 = ({
|
|
|
102
92
|
);
|
|
103
93
|
|
|
104
94
|
return (
|
|
95
|
+
<AbsoluteFill>
|
|
96
|
+
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
105
97
|
<AbsoluteFill
|
|
106
98
|
style={{
|
|
107
|
-
opacity: sceneOpacity,
|
|
108
99
|
transform: `scale(${sceneScale})`,
|
|
109
100
|
transformOrigin: "center center",
|
|
110
101
|
overflow: "hidden",
|
|
@@ -313,5 +304,7 @@ export const F20012026_03 = ({
|
|
|
313
304
|
</div>
|
|
314
305
|
|
|
315
306
|
</AbsoluteFill>
|
|
307
|
+
|
|
308
|
+
</AbsoluteFill>
|
|
316
309
|
);
|
|
317
310
|
};
|
|
@@ -68,7 +68,7 @@ export const T20012026_01 = ({
|
|
|
68
68
|
const framesPerPage = Math.floor(durationInFrames / 3);
|
|
69
69
|
const transitionDuration = Math.floor(framesPerPage * 0.25);
|
|
70
70
|
|
|
71
|
-
/* ---------------- PRELOAD IMAGES
|
|
71
|
+
/* ---------------- PRELOAD IMAGES ---------------- */
|
|
72
72
|
|
|
73
73
|
const imagesToPreload = useMemo(
|
|
74
74
|
() => [
|
|
@@ -94,8 +94,12 @@ export const T20012026_01 = ({
|
|
|
94
94
|
/* ---------------- RENDER ---------------- */
|
|
95
95
|
|
|
96
96
|
return (
|
|
97
|
-
<AbsoluteFill
|
|
98
|
-
|
|
97
|
+
<AbsoluteFill>
|
|
98
|
+
|
|
99
|
+
{/* 🔒 GLOBAL BACKGROUND (never unmounts) */}
|
|
100
|
+
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
101
|
+
|
|
102
|
+
{/* 🎵 MUSIC */}
|
|
99
103
|
<Audio
|
|
100
104
|
src={staticFile("video-images/wedding.mp3")}
|
|
101
105
|
startFrom={30}
|
|
@@ -104,7 +108,7 @@ export const T20012026_01 = ({
|
|
|
104
108
|
/>
|
|
105
109
|
|
|
106
110
|
{/* -------- SCENE 1 -------- */}
|
|
107
|
-
<Sequence from={0} durationInFrames={framesPerPage +
|
|
111
|
+
<Sequence from={0} durationInFrames={framesPerPage + 2}>
|
|
108
112
|
<F20012026_01
|
|
109
113
|
firstName={firstName}
|
|
110
114
|
secondName={secondName}
|
|
@@ -114,7 +118,7 @@ export const T20012026_01 = ({
|
|
|
114
118
|
</Sequence>
|
|
115
119
|
|
|
116
120
|
{/* -------- SCENE 2 -------- */}
|
|
117
|
-
<Sequence from={framesPerPage} durationInFrames={framesPerPage +
|
|
121
|
+
<Sequence from={framesPerPage - 2} durationInFrames={framesPerPage + 2}>
|
|
118
122
|
<F20012026_02
|
|
119
123
|
firstName={firstName}
|
|
120
124
|
secondName={secondName}
|
|
@@ -127,18 +131,12 @@ export const T20012026_01 = ({
|
|
|
127
131
|
</Sequence>
|
|
128
132
|
|
|
129
133
|
{/* ☁️ TRANSITION 1 → 2 */}
|
|
130
|
-
<Sequence
|
|
131
|
-
from={framesPerPage - 1}
|
|
132
|
-
durationInFrames={transitionDuration + 2}
|
|
133
|
-
>
|
|
134
|
+
<Sequence from={framesPerPage - 2} durationInFrames={transitionDuration + 2}>
|
|
134
135
|
<InkSmokeTransition20012026 />
|
|
135
136
|
</Sequence>
|
|
136
137
|
|
|
137
138
|
{/* -------- SCENE 3 -------- */}
|
|
138
|
-
<Sequence
|
|
139
|
-
from={framesPerPage * 2}
|
|
140
|
-
durationInFrames={framesPerPage + 1}
|
|
141
|
-
>
|
|
139
|
+
<Sequence from={framesPerPage * 2 - 2} durationInFrames={framesPerPage + 2}>
|
|
142
140
|
<F20012026_03
|
|
143
141
|
eventDateTime={eventDateTime}
|
|
144
142
|
venueName={venueName}
|
|
@@ -148,12 +146,10 @@ export const T20012026_01 = ({
|
|
|
148
146
|
</Sequence>
|
|
149
147
|
|
|
150
148
|
{/* ☁️ TRANSITION 2 → 3 */}
|
|
151
|
-
<Sequence
|
|
152
|
-
from={framesPerPage * 2 - 1}
|
|
153
|
-
durationInFrames={transitionDuration + 2}
|
|
154
|
-
>
|
|
149
|
+
<Sequence from={framesPerPage * 2 - 2} durationInFrames={transitionDuration + 2}>
|
|
155
150
|
<InkSmokeTransition20012026 />
|
|
156
151
|
</Sequence>
|
|
152
|
+
|
|
157
153
|
</AbsoluteFill>
|
|
158
154
|
);
|
|
159
155
|
};
|