返回 oh-my-ppt
preview.html
根目录 / resources / styles / dracula / preview.html
1 <!DOCTYPE html>
2 <html lang="zh-CN">
3 <head>
4 <meta charset="UTF-8" />
5 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6 <title>Dracula 紫 · dracula</title>
7 <style>
8 *{box-sizing:border-box;margin:0}
9 html,body{width:100%;height:100%;overflow:hidden}
10 html{display:grid;place-items:center;background:#0f1117}
11 body{display:grid;place-items:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#f8f8f2;background:#0f1117}
12
13 .slide {
14 position: relative;
15 width: min(100vw, calc(100vh * 16 / 9));
16 aspect-ratio: 16/9;
17 overflow: hidden;
18 background: #282a36;
19 box-shadow: 0 0 0 1px rgba(189,147,249,.1), 0 0 80px rgba(255,121,198,.06);
20 }
21
22 /* Purple glow from top-right */
23 .slide::before {
24 content: "";
25 position: absolute;
26 top: -15%; right: -10%;
27 width: 50%; height: 60%;
28 background: radial-gradient(circle, rgba(189,147,249,.1) 0%, transparent 65%);
29 pointer-events: none;
30 }
31
32 /* Pink glow from bottom-left */
33 .slide::after {
34 content: "";
35 position: absolute;
36 bottom: -15%; left: -5%;
37 width: 45%; height: 50%;
38 background: radial-gradient(circle, rgba(255,121,198,.06) 0%, transparent 65%);
39 pointer-events: none;
40 }
41
42 .content {
43 position: absolute;
44 inset: 8% 7%;
45 z-index: 2;
46 display: grid;
47 grid-template-columns: 1.1fr .9fr;
48 gap: 6%;
49 align-items: stretch;
50 }
51
52 .hero {
53 display: flex;
54 flex-direction: column;
55 justify-content: space-between;
56 }
57
58 .eyebrow {
59 font-size: clamp(7px, .95vw, 11px);
60 font-weight: 700;
61 letter-spacing: .15em;
62 text-transform: uppercase;
63 color: #ff79c6;
64 margin-bottom: 3%;
65 }
66
67 h1 {
68 font-size: clamp(32px, 5.5vw, 68px);
69 line-height: .92;
70 font-weight: 900;
71 color: #f8f8f2;
72 text-shadow: 0 0 30px rgba(255,121,198,.12), 0 0 60px rgba(189,147,249,.08);
73 letter-spacing: -.02em;
74 }
75
76 .desc {
77 margin-top: 4%;
78 font-size: clamp(10px, 1.35vw, 15px);
79 line-height: 1.7;
80 color: rgba(248,248,242,.65);
81 max-width: 92%;
82 }
83
84 .tags {
85 display: flex;
86 flex-wrap: wrap;
87 gap: 8px;
88 margin-top: 5%;
89 }
90 .tags span {
91 border: 1px solid rgba(255,121,198,.2);
92 background: rgba(255,121,198,.06);
93 border-radius: 6px;
94 padding: 4px 10px;
95 font-size: clamp(7px, .85vw, 10px);
96 font-weight: 600;
97 color: rgba(248,248,242,.8);
98 }
99
100 .story {
101 display: grid;
102 grid-template-columns: 1fr 1fr;
103 gap: 3%;
104 margin-top: 5%;
105 }
106 .story p {
107 border-left: 2px solid #bd93f9;
108 padding-left: 8px;
109 font-size: clamp(8px, .95vw, 11px);
110 line-height: 1.5;
111 color: rgba(248,248,242,.55);
112 }
113
114 .chips {
115 display: flex;
116 gap: 10px;
117 margin-top: 4%;
118 }
119 .chips span {
120 font-size: clamp(7px, .85vw, 10px);
121 color: rgba(248,248,242,.45);
122 border-bottom: 1px solid rgba(189,147,249,.15);
123 padding-bottom: 2px;
124 }
125
126 /* Right panel - code editor card */
127 .panel {
128 position: relative;
129 overflow: hidden;
130 border: 1px solid rgba(189,147,249,.12);
131 border-radius: 10px;
132 background: rgba(40,42,54,.6);
133 backdrop-filter: blur(12px);
134 padding: 6%;
135 display: grid;
136 grid-template-rows: auto 1fr auto;
137 gap: 5%;
138 }
139 .panel::before {
140 content: "";
141 position: absolute;
142 top: 0; left: 0; right: 0;
143 height: 4px;
144 background: linear-gradient(90deg, #ff79c6, #bd93f9);
145 }
146
147 .kicker {
148 font-size: clamp(8px, 1vw, 11px);
149 font-weight: 800;
150 letter-spacing: .12em;
151 text-transform: uppercase;
152 color: #bd93f9;
153 }
154
155 .layout {
156 font-size: clamp(9px, 1.05vw, 13px);
157 line-height: 1.6;
158 color: rgba(248,248,242,.6);
159 }
160
161 /* Code block with syntax-colored dots */
162 .visual {
163 position: relative;
164 min-height: 0;
165 border: 1px solid rgba(189,147,249,.1);
166 border-radius: 8px;
167 overflow: hidden;
168 background: rgba(0,0,0,.3);
169 }
170
171 .code-block {
172 position: absolute;
173 inset: 6%;
174 padding: 8%;
175 font-family: "SFMono-Regular", "Consolas", "Menlo", monospace;
176 }
177 .syntax-dots {
178 display: flex;
179 gap: 5px;
180 margin-bottom: 6%;
181 }
182 .syntax-dots i {
183 display: block;
184 width: 8px; height: 8px;
185 border-radius: 50%;
186 }
187 .syntax-dots i:nth-child(1) { background: #ff5555 }
188 .syntax-dots i:nth-child(2) { background: #f1fa8c }
189 .syntax-dots i:nth-child(3) { background: #50fa7b }
190
191 .code-block pre {
192 font-size: clamp(7px, .95vw, 12px);
193 line-height: 1.85;
194 white-space: pre-wrap;
195 color: #b3b8c3;
196 }
197 .code-block .kw { color: #ff79c6 }
198 .code-block .fn { color: #50fa7b }
199 .code-block .str { color: #f1fa8c }
200 .code-block .cm { color: #6272a4 }
201 .code-block .var { color: #bd93f9 }
202 .code-block .op { color: #ff79c6 }
203
204 .palette {
205 display: flex;
206 gap: 7px;
207 }
208 .palette i {
209 display: block;
210 width: clamp(14px, 2vw, 22px);
211 height: clamp(14px, 2vw, 22px);
212 border-radius: 50%;
213 background: var(--c);
214 border: 1px solid rgba(255,255,255,.08);
215 box-shadow: 0 0 8px var(--c);
216 }
217
218 .footer {
219 position: absolute;
220 left: 7%; right: 7%;
221 bottom: 4.5%;
222 z-index: 3;
223 display: flex;
224 align-items: center;
225 justify-content: space-between;
226 font-size: clamp(7px, .85vw, 10px);
227 font-weight: 700;
228 color: rgba(248,248,242,.35);
229 letter-spacing: .08em;
230 text-transform: uppercase;
231 }
232 .footer b { color: rgba(248,248,242,.7) }
233
234 @media(max-aspect-ratio:16/9){.slide{width:min(100vw,calc(100vh*16/9));height:auto}}
235 @media(min-aspect-ratio:16/9){.slide{height:min(100vh,calc(100vw*9/16));width:auto}}
236 </style>
237 </head>
238 <body>
239 <main class="slide" aria-label="Dracula 紫 style preview">
240 <section class="content">
241 <div class="hero">
242 <div>
243 <div class="eyebrow">冷色 · 深色 · dracula</div>
244 <h1>Dracula 紫</h1>
245 <p class="desc">紫夜笼罩屏幕,每一行代码都在荧光中呼吸</p>
246 <div class="tags">
247 <span>代码密集的技术分享</span>
248 <span>开源项目演示</span>
249 <span>编程教学</span>
250 <span>黑客马拉松</span>
251 </div>
252 <div class="story">
253 <p>标题 #f8f8f2 冷白、正文 #b3b8c3 银灰,强调色 #ff79c6 荧光粉与 #bd93f9 薰衣草紫是 Dracula 的灵魂双色。</p>
254 <p>等宽字体是第一选择,代码友好。深邃而富有表现力。</p>
255 </div>
256 </div>
257 <div class="chips">
258 <span>fade-up</span>
259 <span>stagger-list</span>
260 <span>neon-glow</span>
261 </div>
262 </div>
263 <aside class="panel">
264 <div>
265 <div class="kicker">Style DNA</div>
266 <div class="layout">Dracula 是代码美学的经典之选——深邃的紫黑底色如夜晚的斗篷,荧光粉和薰衣草紫在其中呼吸。</div>
267 </div>
268 <div class="visual">
269 <div class="code-block">
270 <div class="syntax-dots"><i></i><i></i><i></i></div>
271 <pre><span class="kw">function</span> <span class="fn">dracula</span>() {
272 <span class="kw">const</span> <span class="var">palette</span> <span class="op">=</span> {
273 pink: <span class="str">"#ff79c6"</span>,
274 purple: <span class="str">"#bd93f9"</span>
275 }; <span class="cm">// forever</span>
276 }</pre>
277 </div>
278 </div>
279 <div class="palette">
280 <i style="--c:#f8f8f2"></i>
281 <i style="--c:#b3b8c3"></i>
282 <i style="--c:#ff79c6"></i>
283 <i style="--c:#bd93f9"></i>
284 <i style="--c:#282a36"></i>
285 </div>
286 </aside>
287 </section>
288 <div class="footer">
289 <span><b>Layout</b> 暗色背景上的代码卡片是视觉中心,终端风格的内容展示是常态。</span>
290 <span>16:9 preview</span>
291 </div>
292 </main>
293 </body>
294 </html>
295
295 lines HTML