返回 oh-my-ppt
preview.html
根目录 / resources / styles / terminal-green / 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>终端绿 · terminal-green</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:"SFMono-Regular","Consolas","Menlo","Courier New",monospace;color:#4ade80;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: #0a1a0a;
19 box-shadow: 0 0 0 1px rgba(74,222,128,.1), 0 0 100px rgba(74,222,128,.04);
20 }
21
22 /* Scanline overlay */
23 .slide::before {
24 content: "";
25 position: absolute;
26 inset: 0;
27 background: repeating-linear-gradient(
28 0deg,
29 rgba(0,0,0,.15) 0px,
30 rgba(0,0,0,.15) 1px,
31 transparent 1px,
32 transparent 3px
33 );
34 pointer-events: none;
35 z-index: 4;
36 opacity: .6;
37 }
38
39 /* Green phosphor glow from center */
40 .slide::after {
41 content: "";
42 position: absolute;
43 top: 50%; left: 50%;
44 width: 60%; height: 60%;
45 transform: translate(-50%, -50%);
46 background: radial-gradient(circle, rgba(74,222,128,.04) 0%, transparent 60%);
47 pointer-events: none;
48 }
49
50 .content {
51 position: absolute;
52 inset: 8% 7%;
53 z-index: 2;
54 display: grid;
55 grid-template-columns: 1.1fr .9fr;
56 gap: 6%;
57 align-items: stretch;
58 }
59
60 .hero {
61 display: flex;
62 flex-direction: column;
63 justify-content: space-between;
64 }
65
66 .eyebrow {
67 font-size: clamp(7px, .95vw, 11px);
68 font-weight: 700;
69 letter-spacing: .15em;
70 text-transform: uppercase;
71 color: #4ade80;
72 margin-bottom: 3%;
73 text-shadow: 0 0 8px rgba(74,222,128,.4);
74 }
75
76 h1 {
77 font-size: clamp(32px, 5.5vw, 68px);
78 line-height: .92;
79 font-weight: 900;
80 color: #4ade80;
81 text-shadow: 0 0 20px rgba(74,222,128,.3), 0 0 60px rgba(74,222,128,.15);
82 letter-spacing: -.02em;
83 }
84
85 .desc {
86 margin-top: 4%;
87 font-size: clamp(10px, 1.35vw, 15px);
88 line-height: 1.7;
89 color: rgba(134,239,172,.55);
90 max-width: 92%;
91 }
92
93 .tags {
94 display: flex;
95 flex-wrap: wrap;
96 gap: 8px;
97 margin-top: 5%;
98 }
99 .tags span {
100 border: 1px solid rgba(74,222,128,.2);
101 background: rgba(74,222,128,.04);
102 border-radius: 4px;
103 padding: 4px 10px;
104 font-size: clamp(7px, .85vw, 10px);
105 font-weight: 600;
106 color: rgba(134,239,172,.7);
107 }
108
109 .story {
110 display: grid;
111 grid-template-columns: 1fr 1fr;
112 gap: 3%;
113 margin-top: 5%;
114 }
115 .story p {
116 border-left: 2px solid #4ade80;
117 padding-left: 8px;
118 font-size: clamp(8px, .95vw, 11px);
119 line-height: 1.5;
120 color: rgba(134,239,172,.45);
121 }
122
123 .chips {
124 display: flex;
125 gap: 10px;
126 margin-top: 4%;
127 }
128 .chips span {
129 font-size: clamp(7px, .85vw, 10px);
130 color: rgba(74,222,128,.35);
131 border-bottom: 1px solid rgba(74,222,128,.12);
132 padding-bottom: 2px;
133 }
134
135 /* Right panel - CRT terminal */
136 .panel {
137 position: relative;
138 overflow: hidden;
139 border: 2px solid rgba(74,222,128,.2);
140 border-radius: 8px;
141 background: rgba(10,26,10,.8);
142 padding: 6%;
143 display: grid;
144 grid-template-rows: auto 1fr auto;
145 gap: 5%;
146 }
147 .panel::before {
148 content: "";
149 position: absolute;
150 top: 0; left: 0; right: 0;
151 height: 3px;
152 background: #4ade80;
153 box-shadow: 0 0 10px #4ade80;
154 }
155
156 .kicker {
157 font-size: clamp(8px, 1vw, 11px);
158 font-weight: 800;
159 letter-spacing: .12em;
160 text-transform: uppercase;
161 color: #4ade80;
162 text-shadow: 0 0 6px rgba(74,222,128,.4);
163 }
164
165 .layout {
166 font-size: clamp(9px, 1.05vw, 13px);
167 line-height: 1.6;
168 color: rgba(134,239,172,.5);
169 }
170
171 /* Terminal prompt */
172 .visual {
173 position: relative;
174 min-height: 0;
175 border: 1px solid rgba(74,222,128,.12);
176 border-radius: 6px;
177 overflow: hidden;
178 background: rgba(0,0,0,.4);
179 }
180
181 .prompt-block {
182 position: absolute;
183 inset: 8%;
184 font-family: "SFMono-Regular", "Consolas", "Menlo", monospace;
185 }
186 .prompt-lines {
187 font-size: clamp(7px, .95vw, 12px);
188 line-height: 2;
189 color: rgba(134,239,172,.7);
190 }
191 .prompt-lines .ps { color: #4ade80; text-shadow: 0 0 6px rgba(74,222,128,.5) }
192 .prompt-lines .cmd { color: #86efac }
193 .prompt-lines .out { color: rgba(74,222,128,.45) }
194 .prompt-lines .ok { color: #4ade80 }
195
196 .prompt-cursor {
197 display: inline-block;
198 width: 7px; height: clamp(10px, 1.3vw, 16px);
199 background: #4ade80;
200 animation: blink 1s step-end infinite;
201 vertical-align: middle;
202 box-shadow: 0 0 6px #4ade80;
203 }
204
205 .palette {
206 display: flex;
207 gap: 7px;
208 }
209 .palette i {
210 display: block;
211 width: clamp(14px, 2vw, 22px);
212 height: clamp(14px, 2vw, 22px);
213 border-radius: 50%;
214 background: var(--c);
215 border: 1px solid rgba(74,222,128,.2);
216 box-shadow: 0 0 8px var(--c);
217 }
218
219 .footer {
220 position: absolute;
221 left: 7%; right: 7%;
222 bottom: 4.5%;
223 z-index: 3;
224 display: flex;
225 align-items: center;
226 justify-content: space-between;
227 font-size: clamp(7px, .85vw, 10px);
228 font-weight: 700;
229 color: rgba(74,222,128,.3);
230 letter-spacing: .08em;
231 text-transform: uppercase;
232 }
233 .footer b { color: rgba(74,222,128,.6); text-shadow: 0 0 4px rgba(74,222,128,.3) }
234
235 @keyframes blink {
236 50% { opacity: 0 }
237 }
238
239 @media(max-aspect-ratio:16/9){.slide{width:min(100vw,calc(100vh*16/9));height:auto}}
240 @media(min-aspect-ratio:16/9){.slide{height:min(100vh,calc(100vw*9/16));width:auto}}
241 </style>
242 </head>
243 <body>
244 <main class="slide" aria-label="终端绿 style preview">
245 <section class="content">
246 <div class="hero">
247 <div>
248 <div class="eyebrow">效果 · 重 · terminal-green</div>
249 <h1>终端绿</h1>
250 <p class="desc">绿屏荧光在黑暗中闪烁,终端美学最原始的浪漫</p>
251 <div class="tags">
252 <span>CLI 工具展示</span>
253 <span>黑客马拉松</span>
254 <span>安全演讲</span>
255 <span>复古计算文化</span>
256 </div>
257 <div class="story">
258 <p>标题 #4ade80 亮绿、正文 #86efac 浅绿,强调色 #22c55e 绿色与 #16a34a 深绿是荧光的两种亮度。</p>
259 <p>等宽字体是唯一选择——终端美学只认等宽。CRT 复古质感。</p>
260 </div>
261 </div>
262 <div class="chips">
263 <span>typewriter</span>
264 <span>neon-glow</span>
265 <span>glitch-in</span>
266 </div>
267 </div>
268 <aside class="panel">
269 <div>
270 <div class="kicker">Style DNA</div>
271 <div class="layout">终端绿是黑客美学的原点——深绿黑的底色上,荧光绿的文字在黑暗中闪烁,像一台老式 CRT 终端在地下室里独自运行。</div>
272 </div>
273 <div class="visual">
274 <div class="prompt-block">
275 <div class="prompt-lines">
276 <div><span class="ps">$</span> <span class="cmd">style inspect terminal-green</span></div>
277 <div><span class="out">&gt; palette: phosphor green</span></div>
278 <div><span class="out">&gt; motion: typewriter</span></div>
279 <div><span class="ok">&gt; scanline: enabled</span></div>
280 <div><span class="ps">$</span> <span class="prompt-cursor"></span></div>
281 </div>
282 </div>
283 </div>
284 <div class="palette">
285 <i style="--c:#4ade80"></i>
286 <i style="--c:#86efac"></i>
287 <i style="--c:#22c55e"></i>
288 <i style="--c:#16a34a"></i>
289 <i style="--c:#0a1a0a"></i>
290 </div>
291 </aside>
292 </section>
293 <div class="footer">
294 <span><b>Layout</b> 模拟终端界面——黑色背景上的绿色文字,卡片像终端窗口。</span>
295 <span>16:9 preview</span>
296 </div>
297 </main>
298 </body>
299 </html>
300
300 lines HTML