userisuser commited on
Commit
620aa89
·
verified ·
1 Parent(s): a763408

Simplify demo landing page

Browse files
Files changed (2) hide show
  1. README.md +2 -9
  2. index.html +57 -155
README.md CHANGED
@@ -7,19 +7,12 @@ sdk: static
7
  pinned: false
8
  ---
9
 
10
- # MiniCPM-V 4.6 Demo Hub
11
 
12
- A minimal landing page that points users to the live MiniCPM-V 4.6 demos.
13
-
14
- - **China**: <http://82.157.64.212:9443/> — Instruct + Thinking (A100 80G, dual model)
15
- - **Overseas**: <http://34.125.240.119:8000/> — Instruct + Thinking (GCP L4 23G, dual model)
16
 
17
  ## Deploy on Hugging Face Spaces
18
 
19
  1. Create a new Space, choose **Static HTML** as the SDK.
20
  2. Upload `index.html` and this `README.md`.
21
  3. The Space will serve `index.html` automatically.
22
-
23
- ## Update the URLs
24
-
25
- Open `index.html` and edit the two `<a class="card …" href="…">` tags. Each card also has a `<span class="url">` block that mirrors the URL for display.
 
7
  pinned: false
8
  ---
9
 
10
+ # MiniCPM-V 4.6 Demo
11
 
12
+ A minimal landing page for launching the live MiniCPM-V 4.6 demo.
 
 
 
13
 
14
  ## Deploy on Hugging Face Spaces
15
 
16
  1. Create a new Space, choose **Static HTML** as the SDK.
17
  2. Upload `index.html` and this `README.md`.
18
  3. The Space will serve `index.html` automatically.
 
 
 
 
index.html CHANGED
@@ -1,44 +1,35 @@
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, viewport-fit=cover" />
6
  <title>MiniCPM-V 4.6 · Demo</title>
7
  <meta name="color-scheme" content="dark light" />
8
- <meta name="description" content="MiniCPM-V 4.6 multimodal demo — choose a region to launch the live experience." />
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=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap" rel="stylesheet" />
12
  <style>
13
  :root {
14
  --bg-0: #07080d;
15
- --bg-1: #0c0e16;
16
  --fg: #e7e9f0;
17
  --fg-dim: #9ba2b6;
18
  --fg-faint: #6b7180;
19
- --accent-cn: #ff6a3d;
20
- --accent-cn-soft: rgba(255, 106, 61, 0.16);
21
- --accent-ov: #4d7cfe;
22
- --accent-ov-soft: rgba(77, 124, 254, 0.16);
23
- --card-bg: rgba(255, 255, 255, 0.025);
24
- --card-bd: rgba(255, 255, 255, 0.07);
25
- --card-bd-hover: rgba(255, 255, 255, 0.18);
26
  --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
27
  }
28
 
29
  * { box-sizing: border-box; }
30
-
31
- html, body {
32
- margin: 0;
33
- padding: 0;
34
- min-height: 100%;
35
- }
36
-
37
  body {
38
- font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
39
  color: var(--fg);
40
  background: radial-gradient(1200px 800px at 15% 0%, #1a1f37 0%, transparent 60%),
41
- radial-gradient(900px 700px at 85% 100%, #2a1830 0%, transparent 60%),
42
  var(--bg-0);
43
  min-height: 100vh;
44
  display: flex;
@@ -48,7 +39,6 @@
48
  -moz-osx-font-smoothing: grayscale;
49
  }
50
 
51
- /* ambient grid + glow */
52
  body::before {
53
  content: "";
54
  position: fixed;
@@ -67,20 +57,16 @@
67
  z-index: 1;
68
  flex: 1;
69
  width: 100%;
70
- max-width: 1080px;
71
  margin: 0 auto;
72
- padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 48px);
73
  display: flex;
74
  flex-direction: column;
75
  justify-content: center;
76
- gap: clamp(40px, 6vw, 64px);
77
  }
78
 
79
- header.brand {
80
- display: flex;
81
- flex-direction: column;
82
- gap: 18px;
83
- }
84
 
85
  .badge {
86
  align-self: flex-start;
@@ -131,28 +117,19 @@
131
  margin: 0;
132
  font-size: clamp(15px, 1.6vw, 18px);
133
  color: var(--fg-dim);
134
- max-width: 60ch;
135
- line-height: 1.6;
136
- }
137
-
138
- .grid {
139
- display: grid;
140
- grid-template-columns: repeat(2, minmax(0, 1fr));
141
- gap: clamp(16px, 2.5vw, 24px);
142
- }
143
- @media (max-width: 720px) {
144
- .grid { grid-template-columns: 1fr; }
145
  }
146
 
147
  .card {
148
  position: relative;
149
  display: flex;
150
- flex-direction: column;
151
  justify-content: space-between;
152
- gap: 32px;
153
- padding: clamp(24px, 3vw, 32px);
154
  border: 1px solid var(--card-bd);
155
- border-radius: 20px;
156
  background: var(--card-bg);
157
  backdrop-filter: blur(14px);
158
  -webkit-backdrop-filter: blur(14px);
@@ -161,65 +138,41 @@
161
  overflow: hidden;
162
  box-shadow: var(--shadow);
163
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
164
- min-height: 220px;
165
  }
166
  .card::before {
167
  content: "";
168
  position: absolute;
169
  inset: -2px;
170
  border-radius: inherit;
171
- background: var(--card-glow, transparent);
172
  filter: blur(40px);
173
- opacity: 0.55;
174
  z-index: -1;
175
  transition: opacity 0.25s ease;
176
  }
177
  .card:hover {
178
  transform: translateY(-4px);
179
  border-color: var(--card-bd-hover);
180
- background: rgba(255, 255, 255, 0.04);
181
- }
182
- .card:hover::before { opacity: 0.85; }
183
- .card:focus-visible {
184
- outline: 2px solid var(--card-accent, #fff);
185
- outline-offset: 4px;
186
  }
 
 
187
 
188
- .card.cn { --card-accent: var(--accent-cn); --card-glow: var(--accent-cn-soft); }
189
- .card.ov { --card-accent: var(--accent-ov); --card-glow: var(--accent-ov-soft); }
190
-
191
- .card-head {
192
- display: flex;
193
- align-items: center;
194
- justify-content: space-between;
195
- gap: 12px;
196
- }
197
- .region {
198
- display: inline-flex;
199
- align-items: center;
200
- gap: 8px;
201
- padding: 5px 12px;
202
- border: 1px solid var(--card-accent);
203
- color: var(--card-accent);
204
- border-radius: 999px;
205
- font-size: 11px;
206
- font-weight: 600;
207
- letter-spacing: 0.12em;
208
- text-transform: uppercase;
209
- background: color-mix(in srgb, var(--card-accent) 12%, transparent);
210
- }
211
- .ping {
212
- width: 6px;
213
- height: 6px;
214
- border-radius: 50%;
215
- background: var(--card-accent);
216
- box-shadow: 0 0 10px var(--card-accent);
217
  }
 
 
218
  .arrow {
219
- width: 38px;
220
- height: 38px;
 
221
  border-radius: 50%;
222
- background: rgba(255, 255, 255, 0.06);
223
  border: 1px solid var(--card-bd);
224
  display: inline-flex;
225
  align-items: center;
@@ -227,39 +180,12 @@
227
  transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
228
  }
229
  .card:hover .arrow {
230
- transform: translate(4px, -4px) rotate(0deg);
231
- background: var(--card-accent);
232
- border-color: var(--card-accent);
233
- }
234
- .card:hover .arrow svg { stroke: #0a0a0a; }
235
- .arrow svg {
236
- stroke: var(--fg);
237
- transition: stroke 0.25s ease;
238
- }
239
-
240
- .card-body { display: flex; flex-direction: column; gap: 8px; }
241
- .card-title {
242
- font-size: clamp(22px, 2.4vw, 28px);
243
- font-weight: 600;
244
- letter-spacing: -0.01em;
245
- line-height: 1.2;
246
- }
247
- .card-sub {
248
- font-size: 14px;
249
- color: var(--fg-dim);
250
- line-height: 1.55;
251
  }
252
-
253
- .meta {
254
- display: flex;
255
- align-items: center;
256
- gap: 12px;
257
- font-family: "JetBrains Mono", ui-monospace, monospace;
258
- font-size: 12px;
259
- color: var(--fg-faint);
260
- word-break: break-all;
261
- }
262
- .meta .url { color: var(--fg-dim); }
263
 
264
  footer {
265
  position: relative;
@@ -270,13 +196,10 @@
270
  font-size: 12px;
271
  letter-spacing: 0.04em;
272
  }
273
- footer a {
274
- color: var(--fg-dim);
275
- text-decoration: none;
276
- border-bottom: 1px dashed var(--fg-faint);
277
- }
278
- footer a:hover { color: var(--fg); border-bottom-color: var(--fg); }
279
 
 
 
 
280
  @media (prefers-reduced-motion: reduce) {
281
  .card, .card .arrow, .card::before { transition: none; }
282
  }
@@ -285,43 +208,22 @@
285
  <body>
286
  <main>
287
  <header class="brand">
288
- <span class="badge"><span class="dot"></span>Live · Demo</span>
289
  <h1>MiniCPM-V<span class="v">4.6</span></h1>
290
- <p class="lead">A multimodal demo of MiniCPM-V 4.6 chat with images and videos, with both Instruct and Thinking modes. Pick the region closest to you.</p>
291
  </header>
292
 
293
- <section class="grid" aria-label="Demo entrances">
294
- <a class="card cn" href="http://82.157.64.212:9443/" target="_blank" rel="noopener noreferrer">
295
- <div class="card-head">
296
- <span class="region"><span class="ping"></span>China · 中国</span>
297
- <span class="arrow" aria-hidden="true">
298
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11L11 3"/><path d="M5 3h6v6"/></svg>
299
- </span>
300
- </div>
301
- <div class="card-body">
302
- <div class="card-title">Mainland · Instruct + Thinking</div>
303
- </div>
304
- <div class="meta"><span>↗</span><span class="url">82.157.64.212:9443</span></div>
305
- </a>
306
-
307
- <a class="card ov" href="http://34.125.240.119:8000/" target="_blank" rel="noopener noreferrer">
308
- <div class="card-head">
309
- <span class="region"><span class="ping"></span>Overseas · 海外</span>
310
- <span class="arrow" aria-hidden="true">
311
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11L11 3"/><path d="M5 3h6v6"/></svg>
312
- </span>
313
- </div>
314
- <div class="card-body">
315
- <div class="card-title">Global · Instruct + Thinking</div>
316
- </div>
317
- <div class="meta"><span>↗</span><span class="url">34.125.240.119:8000</span></div>
318
- </a>
319
- </section>
320
  </main>
321
 
322
- <footer>
323
- <span>MiniCPM-V 4.6 · Built with</span>
324
- <a href="https://huggingface.co/spaces" target="_blank" rel="noopener noreferrer">Hugging Face Spaces</a>
325
- </footer>
326
  </body>
327
  </html>
 
1
  <!doctype html>
2
+ <html lang="en">
3
  <head>
4
  <meta charset="utf-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
6
  <title>MiniCPM-V 4.6 · Demo</title>
7
  <meta name="color-scheme" content="dark light" />
8
+ <meta name="description" content="Launch the MiniCPM-V 4.6 multimodal demo." />
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=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap" rel="stylesheet" />
12
  <style>
13
  :root {
14
  --bg-0: #07080d;
 
15
  --fg: #e7e9f0;
16
  --fg-dim: #9ba2b6;
17
  --fg-faint: #6b7180;
18
+ --accent: #7c8cff;
19
+ --accent-soft: rgba(124, 140, 255, 0.18);
20
+ --card-bg: rgba(255, 255, 255, 0.03);
21
+ --card-bd: rgba(255, 255, 255, 0.08);
22
+ --card-bd-hover: rgba(255, 255, 255, 0.2);
 
 
23
  --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
24
  }
25
 
26
  * { box-sizing: border-box; }
27
+ html, body { margin: 0; padding: 0; min-height: 100%; }
 
 
 
 
 
 
28
  body {
29
+ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
30
  color: var(--fg);
31
  background: radial-gradient(1200px 800px at 15% 0%, #1a1f37 0%, transparent 60%),
32
+ radial-gradient(900px 700px at 85% 100%, #251735 0%, transparent 60%),
33
  var(--bg-0);
34
  min-height: 100vh;
35
  display: flex;
 
39
  -moz-osx-font-smoothing: grayscale;
40
  }
41
 
 
42
  body::before {
43
  content: "";
44
  position: fixed;
 
57
  z-index: 1;
58
  flex: 1;
59
  width: 100%;
60
+ max-width: 920px;
61
  margin: 0 auto;
62
+ padding: clamp(52px, 9vw, 108px) clamp(20px, 5vw, 48px);
63
  display: flex;
64
  flex-direction: column;
65
  justify-content: center;
66
+ gap: clamp(36px, 5vw, 56px);
67
  }
68
 
69
+ header.brand { display: flex; flex-direction: column; gap: 18px; }
 
 
 
 
70
 
71
  .badge {
72
  align-self: flex-start;
 
117
  margin: 0;
118
  font-size: clamp(15px, 1.6vw, 18px);
119
  color: var(--fg-dim);
120
+ max-width: 62ch;
121
+ line-height: 1.65;
 
 
 
 
 
 
 
 
 
122
  }
123
 
124
  .card {
125
  position: relative;
126
  display: flex;
127
+ align-items: center;
128
  justify-content: space-between;
129
+ gap: 28px;
130
+ padding: clamp(24px, 3.2vw, 34px);
131
  border: 1px solid var(--card-bd);
132
+ border-radius: 22px;
133
  background: var(--card-bg);
134
  backdrop-filter: blur(14px);
135
  -webkit-backdrop-filter: blur(14px);
 
138
  overflow: hidden;
139
  box-shadow: var(--shadow);
140
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
 
141
  }
142
  .card::before {
143
  content: "";
144
  position: absolute;
145
  inset: -2px;
146
  border-radius: inherit;
147
+ background: var(--accent-soft);
148
  filter: blur(40px);
149
+ opacity: 0.65;
150
  z-index: -1;
151
  transition: opacity 0.25s ease;
152
  }
153
  .card:hover {
154
  transform: translateY(-4px);
155
  border-color: var(--card-bd-hover);
156
+ background: rgba(255, 255, 255, 0.045);
 
 
 
 
 
157
  }
158
+ .card:hover::before { opacity: 0.9; }
159
+ .card:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
160
 
161
+ .card-copy { display: flex; flex-direction: column; gap: 9px; }
162
+ .card-title {
163
+ font-size: clamp(24px, 3vw, 32px);
164
+ font-weight: 650;
165
+ letter-spacing: -0.015em;
166
+ line-height: 1.2;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  }
168
+ .card-sub { font-size: 15px; color: var(--fg-dim); line-height: 1.6; }
169
+
170
  .arrow {
171
+ flex: 0 0 auto;
172
+ width: 46px;
173
+ height: 46px;
174
  border-radius: 50%;
175
+ background: rgba(255, 255, 255, 0.07);
176
  border: 1px solid var(--card-bd);
177
  display: inline-flex;
178
  align-items: center;
 
180
  transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
181
  }
182
  .card:hover .arrow {
183
+ transform: translate(4px, -4px);
184
+ background: var(--accent);
185
+ border-color: var(--accent);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
187
+ .arrow svg { stroke: var(--fg); transition: stroke 0.25s ease; }
188
+ .card:hover .arrow svg { stroke: #080a12; }
 
 
 
 
 
 
 
 
 
189
 
190
  footer {
191
  position: relative;
 
196
  font-size: 12px;
197
  letter-spacing: 0.04em;
198
  }
 
 
 
 
 
 
199
 
200
+ @media (max-width: 640px) {
201
+ .card { align-items: flex-start; flex-direction: column; }
202
+ }
203
  @media (prefers-reduced-motion: reduce) {
204
  .card, .card .arrow, .card::before { transition: none; }
205
  }
 
208
  <body>
209
  <main>
210
  <header class="brand">
211
+ <span class="badge"><span class="dot"></span>Live Demo</span>
212
  <h1>MiniCPM-V<span class="v">4.6</span></h1>
213
+ <p class="lead">Explore MiniCPM-V 4.6 in a multimodal chat experience with image, video, Instruct, and Thinking capabilities.</p>
214
  </header>
215
 
216
+ <a class="card" href="http://34.125.240.119:8000/" target="_blank" rel="noopener noreferrer" aria-label="Launch MiniCPM-V 4.6 demo">
217
+ <div class="card-copy">
218
+ <div class="card-title">Launch MiniCPM-V 4.6 Demo</div>
219
+ <div class="card-sub">Open the live chat interface and try image or video understanding.</div>
220
+ </div>
221
+ <span class="arrow" aria-hidden="true">
222
+ <svg width="16" height="16" viewBox="0 0 14 14" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11L11 3"/><path d="M5 3h6v6"/></svg>
223
+ </span>
224
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  </main>
226
 
227
+ <footer>MiniCPM-V 4.6</footer>
 
 
 
228
  </body>
229
  </html>