返回 VideoClaw
image_book.html
1 <!DOCTYPE html>
2 <html lang="zh-CN">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="template:media-width" content="1024">
6 <meta name="template:media-height" content="1024">
7 <meta name="viewport" content="width=1920, height=1080">
8 <!-- Google Fonts - 手写艺术字体 -->
9 <link rel="preconnect" href="https://fonts.googleapis.com">
10 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11 <link href="https://fonts.googleapis.com/css2?family=Liu+Jian+Mao+Cao&family=Ma+Shan+Zheng&family=ZCOOL+XiaoWei&display=swap" rel="stylesheet">
12 <style>
13 * {
14 margin: 0;
15 padding: 0;
16 box-sizing: border-box;
17 }
18
19 html, body {
20 width: 1920px;
21 height: 1080px;
22 overflow: hidden;
23 }
24
25 body {
26 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
27 background-color: #1a1a1a;
28 color: #ffffff;
29 position: relative;
30 }
31
32 .media-bg {
33 position: absolute;
34 inset: 0;
35 z-index: 0;
36 overflow: hidden;
37 }
38
39 .container {
40 position: relative;
41 min-height: 100vh;
42 width: 100%;
43 }
44
45 /* Stars background */
46 .stars {
47 position: absolute;
48 inset: 0;
49 overflow: hidden;
50 }
51
52 .star {
53 position: absolute;
54 width: 4px;
55 height: 4px;
56 background-color: rgba(255, 255, 255, 0.3);
57 border-radius: 50%;
58 animation: pulse 2s ease-in-out infinite;
59 }
60
61 @keyframes pulse {
62 0%, 100% { opacity: 0.3; }
63 50% { opacity: 0.8; }
64 }
65
66 /* Title */
67 .title {
68 position: absolute;
69 top: 32px;
70 right: 32px;
71 z-index: 10;
72 font-size: 50px;
73 text-align: right;
74 /* 黑色描边 */
75 text-shadow: 0 0 0 #0e0a0a,
76 -2px -2px 0 #0e0a0a,
77 2px -2px 0 #0e0a0a,
78 -2px 2px 0 #0e0a0a,
79 2px 2px 0 #0e0a0a;
80 }
81
82 /* Main Content */
83 .main-content {
84 position: relative;
85 display: flex;
86 align-items: center;
87 justify-content: center;
88 min-height: 100vh;
89 padding: 32px;
90 }
91
92 /* Decorative blobs */
93 .blob {
94 position: absolute;
95 border-radius: 50%;
96 filter: blur(60px);
97 opacity: 0.5;
98 }
99
100 .blob-1 {
101 top: 25%;
102 left: 25%;
103 width: 128px;
104 height: 192px;
105 background-color: #4a7c8c;
106 }
107
108 .blob-2 {
109 top: 33%;
110 right: 25%;
111 width: 160px;
112 height: 224px;
113 background-color: #8b3a3a;
114 }
115
116 .blob-3 {
117 bottom: 25%;
118 left: 33%;
119 width: 144px;
120 height: 176px;
121 background-color: #6b4423;
122 opacity: 0.4;
123 }
124
125 /* Text Content */
126 .text-content {
127 position: relative;
128 z-index: 10;
129 text-align: center;
130 }
131
132 .content {
133 font-size: 70px;
134 font-weight: 900;
135 color: white;
136 letter-spacing: 0.05em;
137 font-style: italic;
138 /* 黑色描边 6px */
139 text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9),
140 -4px -4px 4px #0e0a0a,
141 4px -4px 4px #0e0a0a,
142 -4px 4px 4px #0e0a0a,
143 4px 4px 4px #0e0a0a,
144 0 8px 16px rgba(0,0,0,0.5);
145 /* 手写艺术字体 */
146 font-family: 'ZCOOL XiaoWei', cursive, serif;
147 }
148
149 /* Footer */
150 .footer {
151 display: flex;
152 align-items: center;
153 justify-content: center;
154 width: 100%;
155 padding: 25px 20px 0 20px;
156 position: absolute;
157 bottom: 32px;
158 color: #fff;
159 }
160
161 .author {
162 font-size: 50px;
163 font-weight: 500;
164 color: gray;
165 /* 手写艺术字体 */
166 font-family: 'Liu Jian Mao Cao', cursive, serif;
167 }
168 </style>
169 </head>
170 <body>
171 <div class="media-bg">{{media}}</div>
172
173 <div class="container">
174 <!-- Stars background -->
175 <div class="stars" id="stars"></div>
176
177 <!-- Title -->
178 <div class="title">{{title}}</div>
179
180 <!-- Main Content -->
181 <div class="main-content">
182 <!-- Decorative blobs -->
183 <div class="blob blob-1"></div>
184 <div class="blob blob-2"></div>
185 <div class="blob blob-3"></div>
186
187 <!-- Text Content -->
188 <div class="text-content">
189 <p class="content">{{text}}</p>
190 </div>
191 </div>
192 </div>
193
194 <div class="footer">
195 <div class="author">{{author=HITsz-TMG}}</div>
196 </div>
197
198 <script>
199 // Generate stars
200 const starsContainer = document.getElementById('stars');
201 for (let i = 0; i < 50; i++) {
202 const star = document.createElement('div');
203 star.className = 'star';
204 star.style.left = Math.random() * 100 + '%';
205 star.style.top = Math.random() * 100 + '%';
206 star.style.animationDelay = Math.random() * 3 + 's';
207 star.style.animationDuration = (2 + Math.random() * 3) + 's';
208 starsContainer.appendChild(star);
209 }
210 </script>
211 </body>
212 </html>
213
213 lines HTML