返回 VideoClaw
image_default.html
根目录 / video-claw / video-claw / backend / templates / 1080x1920 / image_default.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <meta name="template:media-width" content="1024">
6 <meta name="template:media-height" content="1024">
7 <style>
8 html {
9 margin: 0;
10 padding: 0;
11 }
12
13 body {
14 margin: 0;
15 padding: 0;
16 width: 1080px;
17 background: #fafafa;
18 font-family: 'PingFang SC', 'Source Han Sans', 'Microsoft YaHei', sans-serif;
19 position: relative;
20 overflow: hidden;
21 }
22
23 .page-container {
24 width: 1080px;
25 height: 1920px;
26 padding: 80px 60px 90px 60px;
27 box-sizing: border-box;
28 display: flex;
29 flex-direction: column;
30 justify-content: center;
31 align-items: center;
32 gap: 60px;
33 position: relative;
34 z-index: 1;
35 }
36
37 /* Background minimal decorations */
38 .bg-decoration {
39 position: absolute;
40 top: 0;
41 left: 0;
42 width: 100%;
43 height: 100%;
44 z-index: 0;
45 overflow: hidden;
46 pointer-events: none;
47 }
48
49 /* Subtle circles */
50 .circle-outline-1 {
51 position: absolute;
52 width: 350px;
53 height: 350px;
54 border-radius: 50%;
55 border: 2px solid rgba(44, 62, 80, 0.12);
56 top: 10%;
57 right: -100px;
58 }
59
60 .circle-outline-2 {
61 position: absolute;
62 width: 280px;
63 height: 280px;
64 border-radius: 50%;
65 border: 2px solid rgba(44, 62, 80, 0.1);
66 bottom: 15%;
67 left: -80px;
68 }
69
70 .circle-outline-3 {
71 position: absolute;
72 width: 180px;
73 height: 180px;
74 border-radius: 50%;
75 border: 2px solid rgba(149, 165, 166, 0.15);
76 top: 50%;
77 left: 100px;
78 }
79
80 /* Subtle lines */
81 .line-decoration {
82 position: absolute;
83 height: 2px;
84 background: rgba(149, 165, 166, 0.25);
85 }
86
87 .line-1 {
88 width: 250px;
89 top: 20%;
90 left: 80px;
91 transform: rotate(-5deg);
92 }
93
94 .line-2 {
95 width: 180px;
96 top: 55%;
97 right: 120px;
98 transform: rotate(8deg);
99 }
100
101 .line-3 {
102 width: 200px;
103 bottom: 25%;
104 left: 120px;
105 transform: rotate(-3deg);
106 }
107
108 /* Small accent squares */
109 .square-minimal {
110 position: absolute;
111 width: 14px;
112 height: 14px;
113 background: rgba(149, 165, 166, 0.35);
114 }
115
116 .square-1 { top: 15%; left: 50px; }
117 .square-2 { top: 45%; right: 80px; }
118 .square-3 { bottom: 20%; left: 100px; transform: rotate(45deg); }
119
120 /* Video title section */
121 .video-title-wrapper {
122 position: relative;
123 max-width: 800px;
124 text-align: center;
125 }
126
127 .video-title-ornament-top {
128 position: absolute;
129 top: -40px;
130 left: 50%;
131 transform: translateX(-50%);
132 display: flex;
133 align-items: center;
134 gap: 10px;
135 }
136
137 .ornament-line {
138 width: 40px;
139 height: 2px;
140 background: rgba(149, 165, 166, 0.55);
141 }
142
143 .ornament-dot {
144 width: 7px;
145 height: 7px;
146 border-radius: 50%;
147 background: rgba(149, 165, 166, 0.65);
148 }
149
150 .video-title {
151 font-size: 68px;
152 font-weight: 600;
153 color: #1a252f;
154 line-height: 1.4;
155 letter-spacing: 2px;
156 position: relative;
157 }
158
159 .video-title::after {
160 content: '';
161 position: absolute;
162 bottom: -20px;
163 left: 50%;
164 transform: translateX(-50%);
165 width: 120px;
166 height: 2px;
167 background: rgba(149, 165, 166, 0.4);
168 }
169
170 /* Image section */
171 .image-wrapper {
172 width: 100%;
173 max-width: 900px;
174 position: relative;
175 }
176
177 .image-container {
178 width: 100%;
179 height: 900px;
180 display: flex;
181 align-items: center;
182 justify-content: center;
183 position: relative;
184 }
185
186 .image-container img {
187 width: 100%;
188 height: 100%;
189 border-radius: 8px;
190 box-shadow: 0 15px 50px rgba(0,0,0,0.06);
191 object-fit: cover;
192 }
193
194 /* L-shaped corner marks (different from modern) */
195 .corner-mark {
196 position: absolute;
197 }
198
199 .corner-mark.tl {
200 top: -18px;
201 left: -18px;
202 width: 50px;
203 height: 3px;
204 background: rgba(149, 165, 166, 0.45);
205 }
206
207 .corner-mark.tl::after {
208 content: '';
209 position: absolute;
210 left: 0;
211 top: 0;
212 width: 3px;
213 height: 50px;
214 background: rgba(149, 165, 166, 0.45);
215 }
216
217 .corner-mark.tr {
218 top: -18px;
219 right: -18px;
220 width: 50px;
221 height: 3px;
222 background: rgba(149, 165, 166, 0.45);
223 }
224
225 .corner-mark.tr::after {
226 content: '';
227 position: absolute;
228 right: 0;
229 top: 0;
230 width: 3px;
231 height: 50px;
232 background: rgba(149, 165, 166, 0.45);
233 }
234
235 .corner-mark.bl {
236 bottom: -18px;
237 left: -18px;
238 width: 50px;
239 height: 3px;
240 background: rgba(149, 165, 166, 0.45);
241 }
242
243 .corner-mark.bl::after {
244 content: '';
245 position: absolute;
246 left: 0;
247 bottom: 0;
248 width: 3px;
249 height: 50px;
250 background: rgba(149, 165, 166, 0.45);
251 }
252
253 .corner-mark.br {
254 bottom: -18px;
255 right: -18px;
256 width: 50px;
257 height: 3px;
258 background: rgba(149, 165, 166, 0.45);
259 }
260
261 .corner-mark.br::after {
262 content: '';
263 position: absolute;
264 right: 0;
265 bottom: 0;
266 width: 3px;
267 height: 50px;
268 background: rgba(149, 165, 166, 0.45);
269 }
270
271 /* Side dots */
272 .side-dots {
273 position: absolute;
274 display: flex;
275 flex-direction: column;
276 gap: 20px;
277 top: 50%;
278 transform: translateY(-50%);
279 }
280
281 .side-dots.left { left: -30px; }
282 .side-dots.right { right: -30px; }
283
284 .side-dot {
285 width: 7px;
286 height: 7px;
287 border-radius: 50%;
288 background: rgba(149, 165, 166, 0.4);
289 }
290
291 .side-dot.active {
292 background: rgba(149, 165, 166, 0.65);
293 width: 10px;
294 height: 10px;
295 }
296
297 /* Text section */
298 .content {
299 display: flex;
300 flex-direction: column;
301 gap: 30px;
302 max-width: 850px;
303 width: 100%;
304 position: relative;
305 }
306
307 .text-wrapper {
308 position: relative;
309 }
310
311 .text {
312 font-size: 42px;
313 color: #2c3e50;
314 text-align: center;
315 line-height: 1.9;
316 font-weight: 500;
317 padding: 20px 40px;
318 position: relative;
319 height: 239.4px;
320 display: flex;
321 align-items: center;
322 justify-content: center;
323 }
324
325 /* Minimal quote marks */
326 .quote-minimal {
327 position: absolute;
328 opacity: 0.25;
329 }
330
331 .quote-minimal.left {
332 top: -10px;
333 left: 0;
334 transform: rotate(180deg);
335 }
336
337 .quote-minimal.right {
338 bottom: -10px;
339 right: 0;
340 }
341
342 /* Decorative dividers */
343 .divider-set {
344 display: flex;
345 justify-content: center;
346 align-items: center;
347 gap: 12px;
348 margin: 10px 0;
349 }
350
351 .divider {
352 height: 2px;
353 background: rgba(149, 165, 166, 0.35);
354 }
355
356 .divider.short { width: 40px; }
357 .divider.long { width: 80px; }
358
359 .divider-dot {
360 width: 6px;
361 height: 6px;
362 border-radius: 50%;
363 background: rgba(149, 165, 166, 0.45);
364 }
365
366 /* Footer */
367 .footer {
368 display: flex;
369 align-items: center;
370 justify-content: space-between;
371 width: 100%;
372 max-width: 850px;
373 padding: 25px 10px 0 10px;
374 border-top: 2px solid rgba(149, 165, 166, 0.3);
375 position: relative;
376 }
377
378 .footer::before {
379 content: '';
380 position: absolute;
381 top: -3px;
382 left: 50%;
383 transform: translateX(-50%);
384 width: 70px;
385 height: 3px;
386 background: rgba(149, 165, 166, 0.55);
387 }
388
389 .author {
390 display: flex;
391 flex-direction: column;
392 gap: 6px;
393 }
394
395 .author-name {
396 font-size: 30px;
397 font-weight: 600;
398 color: #1a252f;
399 display: flex;
400 align-items: center;
401 gap: 10px;
402 }
403
404 .author-mark {
405 width: 8px;
406 height: 8px;
407 border-radius: 50%;
408 background: rgba(149, 165, 166, 0.7);
409 }
410
411 .author-desc {
412 font-size: 22px;
413 color: #5d6d7e;
414 line-height: 1.3;
415 font-weight: 400;
416 }
417
418 .logo-section {
419 display: flex;
420 flex-direction: column;
421 align-items: flex-end;
422 gap: 8px;
423 }
424
425 .logo {
426 font-size: 24px;
427 font-weight: 500;
428 color: #707b7c;
429 letter-spacing: 2px;
430 }
431
432 .logo-marks {
433 display: flex;
434 gap: 5px;
435 }
436
437 .logo-mark {
438 width: 6px;
439 height: 6px;
440 border-radius: 50%;
441 background: rgba(149, 165, 166, 0.45);
442 }
443
444 .logo-mark.active {
445 background: rgba(149, 165, 166, 0.75);
446 }
447
448 </style>
449 </head>
450 <body>
451 <!-- Background minimal decorations -->
452 <div class="bg-decoration">
453 <div class="circle-outline-1"></div>
454 <div class="circle-outline-2"></div>
455 <div class="circle-outline-3"></div>
456 <div class="line-decoration line-1"></div>
457 <div class="line-decoration line-2"></div>
458 <div class="line-decoration line-3"></div>
459 <div class="square-minimal square-1"></div>
460 <div class="square-minimal square-2"></div>
461 <div class="square-minimal square-3"></div>
462 </div>
463
464 <div class="page-container">
465 <div class="video-title-wrapper">
466 <!-- Top ornament -->
467 <div class="video-title-ornament-top">
468 <div class="ornament-line"></div>
469 <div class="ornament-dot"></div>
470 <div class="ornament-line"></div>
471 </div>
472
473 <div class="video-title">{{title}}</div>
474 </div>
475
476 <div class="image-wrapper">
477 <!-- Corner marks -->
478 <div class="corner-mark tl"></div>
479 <div class="corner-mark tr"></div>
480 <div class="corner-mark bl"></div>
481 <div class="corner-mark br"></div>
482
483 <!-- Side dots -->
484 <div class="side-dots left">
485 <div class="side-dot"></div>
486 <div class="side-dot active"></div>
487 <div class="side-dot"></div>
488 </div>
489 <div class="side-dots right">
490 <div class="side-dot"></div>
491 <div class="side-dot active"></div>
492 <div class="side-dot"></div>
493 </div>
494
495 <div class="image-container">
496 <img src="{{image}}" alt="Frame Image">
497 </div>
498 </div>
499
500 <div class="content">
501 <div class="text-wrapper">
502 <!-- Minimal quote marks -->
503 <svg class="quote-minimal left" width="60" height="60" viewBox="0 0 24 24" fill="#95a5a6">
504 <path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/>
505 </svg>
506 <svg class="quote-minimal right" width="60" height="60" viewBox="0 0 24 24" fill="#95a5a6">
507 <path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/>
508 </svg>
509
510 <div class="text">{{text}}</div>
511 </div>
512
513 <!-- Decorative dividers -->
514 <div class="divider-set">
515 <div class="divider short"></div>
516 <div class="divider-dot"></div>
517 <div class="divider long"></div>
518 <div class="divider-dot"></div>
519 <div class="divider short"></div>
520 </div>
521 </div>
522
523 <div class="footer">
524 <div class="author">
525 <div class="author-name">
526 <span class="author-mark"></span>
527 <div class="logo">{{author=HITsz-TMG}}</div>
528 </div>
529 <div class="author-desc">{{describe=开源视频生成智能体}}</div>
530 </div>
531 <div class="logo-section">
532 <div class="logo">{{brand=Video-Claw}}</div>
533 <div class="logo-marks">
534 <div class="logo-mark"></div>
535 <div class="logo-mark active"></div>
536 <div class="logo-mark"></div>
537 <div class="logo-mark"></div>
538 </div>
539 </div>
540 </div>
541 </div>
542 </body>
543 </html>
544
544 lines HTML