Raw
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <link rel="preconnect" href="https://fonts.googleapis.com">
6 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
7 <style>
8 *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
9
10 html, body {
11 width: 1080px;
12 height: 1920px;
13 overflow: hidden;
14 font-family: 'Inter', system-ui, -apple-system, sans-serif;
15 }
16
17 .page {
18 width: 1080px;
19 height: 1920px;
20 background: linear-gradient(155deg, #f8f7f3 0%, #eeede9 100%);
21 display: flex;
22 flex-direction: column;
23 align-items: center;
24 }
25
26 /* ── text section ─────────────────────────────── */
27 .text-section {
28 padding-top: 140px;
29 text-align: center;
30 max-width: 860px;
31 padding-left: 40px;
32 padding-right: 40px;
33 }
34
35 .label {
36 font-size: 27px;
37 font-weight: 700;
38 letter-spacing: 0.18em;
39 text-transform: uppercase;
40 color: #3a7a56;
41 margin-bottom: 30px;
42 }
43
44 .headline {
45 font-size: 83px;
46 font-weight: 800;
47 line-height: 1.06;
48 color: #1a3428;
49 margin-bottom: 38px;
50 }
51
52 .headline .accent {
53 color: #3a7a56;
54 }
55
56 .subtext {
57 font-size: 33px;
58 font-weight: 400;
59 line-height: 1.45;
60 color: #7a7a7a;
61 }
62
63 /* ── phone frame ──────────────────────────────── */
64 .phone-wrap {
65 margin-top: 66px;
66 }
67
68 .phone-frame {
69 width: 520px;
70 height: 1155px;
71 background: #1c1c1e;
72 border-radius: 56px;
73 padding: 14px;
74 box-shadow:
75 0 0 0 1px rgba(255,255,255,0.06),
76 0 48px 96px rgba(0,0,0,0.30),
77 0 24px 48px rgba(0,0,0,0.16);
78 position: relative;
79 }
80
81 .phone-frame::after {
82 content: '';
83 position: absolute;
84 right: -4px;
85 top: 200px;
86 width: 4px;
87 height: 80px;
88 background: #2a2a2c;
89 border-radius: 0 4px 4px 0;
90 }
91
92 .phone-screen {
93 background: #f2f2f2;
94 border-radius: 44px;
95 overflow: hidden;
96 width: 100%;
97 height: 100%;
98 position: relative;
99 display: flex;
100 flex-direction: column;
101 }
102
103 .camera-area {
104 flex-shrink: 0;
105 height: 54px;
106 display: flex;
107 align-items: center;
108 justify-content: center;
109 background: #f2f2f2;
110 }
111
112 .camera-hole {
113 width: 16px;
114 height: 16px;
115 background: #1c1c1e;
116 border-radius: 50%;
117 }
118
119 .status-bar {
120 flex-shrink: 0;
121 display: flex;
122 justify-content: space-between;
123 align-items: center;
124 padding: 0 32px 10px;
125 font-size: 22px;
126 font-weight: 700;
127 color: #1a1a1a;
128 }
129
130 .status-icons {
131 display: flex;
132 align-items: center;
133 gap: 8px;
134 }
135
136 /* settings screen */
137 .settings-screen {
138 flex: 1;
139 background: #f2f2f2;
140 display: flex;
141 flex-direction: column;
142 overflow: hidden;
143 }
144
145 .settings-header {
146 display: flex;
147 justify-content: space-between;
148 align-items: center;
149 padding: 18px 28px 20px;
150 background: #f2f2f2;
151 }
152
153 .settings-title {
154 font-size: 34px;
155 font-weight: 700;
156 color: #111;
157 }
158
159 .done-btn {
160 font-size: 24px;
161 font-weight: 600;
162 color: #3a7a56;
163 }
164
165 /* settings list */
166 .settings-group {
167 margin: 0 18px 10px;
168 }
169
170 .settings-group-label {
171 font-size: 17px;
172 font-weight: 600;
173 letter-spacing: 0.06em;
174 text-transform: uppercase;
175 color: #8a8a8a;
176 padding: 8px 16px 8px;
177 }
178
179 .settings-card {
180 background: #fff;
181 border-radius: 16px;
182 overflow: hidden;
183 }
184
185 .settings-row {
186 display: flex;
187 justify-content: space-between;
188 align-items: center;
189 padding: 18px 20px;
190 border-bottom: 1px solid #f0f0f0;
191 }
192
193 .settings-row:last-child {
194 border-bottom: none;
195 }
196
197 .settings-row-label {
198 font-size: 22px;
199 font-weight: 500;
200 color: #111;
201 }
202
203 .settings-row-value {
204 display: flex;
205 align-items: center;
206 gap: 8px;
207 font-size: 21px;
208 color: #8a8a8a;
209 max-width: 240px;
210 text-align: right;
211 }
212
213 .chevron {
214 color: #c0c0c0;
215 flex-shrink: 0;
216 }
217
218 /* model detail block */
219 .model-detail {
220 background: #fff;
221 border-radius: 16px;
222 margin: 0 18px 10px;
223 padding: 18px 20px;
224 }
225
226 .model-name {
227 font-size: 22px;
228 font-weight: 600;
229 color: #111;
230 margin-bottom: 4px;
231 }
232
233 .model-maker {
234 font-size: 18px;
235 color: #8a8a8a;
236 margin-bottom: 12px;
237 }
238
239 .model-desc {
240 font-size: 19px;
241 color: #555;
242 line-height: 1.45;
243 margin-bottom: 16px;
244 }
245
246 .model-status {
247 display: flex;
248 align-items: center;
249 gap: 8px;
250 }
251
252 .status-dot {
253 width: 9px;
254 height: 9px;
255 background: #c0c0c0;
256 border-radius: 50%;
257 }
258
259 .status-text {
260 font-size: 19px;
261 color: #8a8a8a;
262 }
263
264 .download-note {
265 margin: 0 18px 10px;
266 padding: 16px 20px;
267 font-size: 18px;
268 color: #8a8a8a;
269 line-height: 1.45;
270 }
271
272 .about-group {
273 margin: 0 18px;
274 }
275 </style>
276 </head>
277 <body>
278 <div class="page">
279
280 <div class="text-section">
281 <div class="label">On-Device Models</div>
282 <div class="headline">
283 Pick your model. <span class="accent">Keep your data.</span>
284 </div>
285 <div class="subtext">Run open models like Qwen 2.5 — everything stays on your device.</div>
286 </div>
287
288 <div class="phone-wrap">
289 <div class="phone-frame">
290 <div class="phone-screen">
291
292 <div class="camera-area">
293 <div class="camera-hole"></div>
294 </div>
295
296 <div class="status-bar">
297 <span>9:41</span>
298 <div class="status-icons">
299 <svg width="19" height="14" viewBox="0 0 19 14" fill="#1a1a1a">
300 <rect x="0" y="9" width="3.5" height="5" rx="0.8"/>
301 <rect x="4.5" y="6" width="3.5" height="8" rx="0.8"/>
302 <rect x="9" y="3" width="3.5" height="11" rx="0.8"/>
303 <rect x="13.5" y="0" width="3.5" height="14" rx="0.8"/>
304 </svg>
305 <svg width="20" height="15" viewBox="0 0 20 15" fill="#1a1a1a">
306 <circle cx="10" cy="13.5" r="1.5"/>
307 <path d="M6.5 10C7.8 8.8 8.8 8 10 8s2.2.8 3.5 2" stroke="#1a1a1a" stroke-width="1.8" fill="none" stroke-linecap="round"/>
308 <path d="M3.5 7C5.5 5 7.6 4 10 4s4.5 1 6.5 3" stroke="#1a1a1a" stroke-width="1.8" fill="none" stroke-linecap="round"/>
309 <path d="M0.5 4C3.2 1.5 6.4 0 10 0s6.8 1.5 9.5 4" stroke="#1a1a1a" stroke-width="1.8" fill="none" stroke-linecap="round"/>
310 </svg>
311 <svg width="27" height="14" viewBox="0 0 27 14" fill="#1a1a1a">
312 <rect x="0" y="1.5" width="22" height="11" rx="3" stroke="#1a1a1a" stroke-width="1.5" fill="none"/>
313 <rect x="22.5" y="4.5" width="3" height="5" rx="1.5"/>
314 <rect x="2" y="3.5" width="16" height="7" rx="1.5"/>
315 </svg>
316 </div>
317 </div>
318
319 <div class="settings-screen">
320 <div class="settings-header">
321 <div class="settings-title">Settings</div>
322 <div class="done-btn">Done</div>
323 </div>
324
325 <div class="settings-group">
326 <div class="settings-group-label">Model</div>
327 <div class="settings-card">
328 <div class="settings-row">
329 <span class="settings-row-label">On-device model</span>
330 <div class="settings-row-value">
331 <span>Qwen 2.5 1.5B (GGUF)…</span>
332 <svg class="chevron" width="12" height="20" viewBox="0 0 12 20" fill="none" stroke="#c0c0c0" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
333 <polyline points="1 1 11 10 1 19"/>
334 </svg>
335 </div>
336 </div>
337 </div>
338 </div>
339
340 <div class="model-detail">
341 <div class="model-name">Qwen 2.5 1.5B (GGUF)</div>
342 <div class="model-maker">Qwen / Alibaba</div>
343 <div class="model-desc">Lightest pre-quantized chat model — ideal for iOS &amp; Android (~941 MB). Fits comfortably within device memory limits.</div>
344 <div class="model-status">
345 <div class="status-dot"></div>
346 <span class="status-text">Not loaded</span>
347 </div>
348 </div>
349
350 <div class="download-note">
351 Switching downloads the model on first use — Wi-Fi recommended. Everything runs entirely on your device; nothing is ever sent to a server.
352 </div>
353
354 <div class="about-group">
355 <div class="settings-group-label">About</div>
356 <div class="settings-card">
357 <div class="settings-row">
358 <span class="settings-row-label">Siti AI</span>
359 <div class="settings-row-value"><span>1.0.0</span></div>
360 </div>
361 <div class="settings-row">
362 <span class="settings-row-label">Privacy</span>
363 <div class="settings-row-value"><span>On-device · private</span></div>
364 </div>
365 </div>
366 </div>
367 </div>
368
369 </div>
370 </div>
371 </div>
372
373 </div>
374 </body>
375 </html>