create-volt 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to `create-volt` are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/), and this project adheres to
5
5
  [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [0.32.0] - 2026-06-29
8
+
9
+ ### Changed
10
+ - **Brand refresh:** the ⚡ glyph is replaced with the Volt logo across the demo
11
+ app, the setup wizard, and Studio; scaffolded apps now ship `logo.webp` +
12
+ `favicon.webp` and link a favicon (so apps get a real tab icon). README titles
13
+ keep the ⚡.
14
+
7
15
  ## [0.31.0] - 2026-06-29
8
16
 
9
17
  ### Added
@@ -424,6 +432,7 @@ All notable changes to `create-volt` are documented here. The format follows
424
432
  watching and full-page hot reload. Supports `--skip-install` and `--force`,
425
433
  and auto-detects npm / pnpm / yarn / bun for the install step.
426
434
 
435
+ [0.32.0]: https://github.com/MIR-2025/volt/releases/tag/v0.32.0
427
436
  [0.31.0]: https://github.com/MIR-2025/volt/releases/tag/v0.31.0
428
437
  [0.30.0]: https://github.com/MIR-2025/volt/releases/tag/v0.30.0
429
438
  [0.29.0]: https://github.com/MIR-2025/volt/releases/tag/v0.29.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-volt",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Scaffold a new Volt app — no-build, signals-based UI with Socket.io hot reload.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -225,6 +225,8 @@ function startSetup() {
225
225
  const assets = {
226
226
  "/setup.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "setup", "setup.js"))],
227
227
  "/volt.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "public", "volt.js"))],
228
+ "/logo.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "logo.webp"))],
229
+ "/favicon.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "favicon.webp"))],
228
230
  };
229
231
  const indexHtml = fs.readFileSync(path.join(__dirname, "setup", "index.html"));
230
232
 
@@ -381,6 +383,8 @@ async function startStudio() {
381
383
  const visible = (n) => n && !HIDDEN_COLLECTIONS.has(n);
382
384
  const assets = {
383
385
  "/volt.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "public", "volt.js"))],
386
+ "/logo.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "logo.webp"))],
387
+ "/favicon.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "favicon.webp"))],
384
388
  "/db-admin-ui.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(ADDONS_DIR, "db", "files", "public", "db-admin-ui.js"))],
385
389
  };
386
390
  const studioHtml = fs.readFileSync(path.join(__dirname, "setup", "studio.html"));
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Set up your Volt app</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>
@@ -17,7 +18,7 @@
17
18
  <body>
18
19
  <main class="container py-5" style="max-width: 640px;">
19
20
  <header class="mb-4">
20
- <h1 class="h3"><span class="accent">⚡ Set up your Volt app</span></h1>
21
+ <h1 class="h3"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Set up your Volt app</span></h1>
21
22
  <p class="text-muted mb-0">Fill these in and the app starts. This page is disposable — it disappears once you click Apply. Re-open it anytime with <code>npm run dev -- --edit</code>.</p>
22
23
  </header>
23
24
  <div id="app"></div>
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Volt Studio</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>
@@ -14,7 +15,7 @@
14
15
  <body>
15
16
  <main class="container py-5" style="max-width: 820px;">
16
17
  <header class="mb-4">
17
- <h1 class="h3"><span class="accent">⚡ Volt Studio</span> <small class="text-muted">data browser</small></h1>
18
+ <h1 class="h3"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Volt Studio</span> <small class="text-muted">data browser</small></h1>
18
19
  <p class="text-muted mb-0">Browse the database in your <code>.env</code>. Disposable &amp; localhost-only — close the terminal when done.</p>
19
20
  </header>
20
21
  <div id="app"></div>
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Volt — signals, no build, hot reload</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>
@@ -19,7 +20,7 @@
19
20
  <body>
20
21
  <main class="container py-5" style="max-width: 720px;">
21
22
  <header class="text-center mb-5">
22
- <h1 class="brand display-5"><span class="accent">⚡ Volt</span></h1>
23
+ <h1 class="brand display-5"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Volt</span></h1>
23
24
  <p class="text-muted mb-0">
24
25
  Fine-grained signals · no JSX · no virtual DOM · live hot reload.
25
26
  Edit <code>public/app.js</code> and save — this page reloads itself.
@@ -147,7 +147,7 @@ const TABS = [
147
147
  const nav = () =>
148
148
  html`<nav class="navx py-2 mb-4">
149
149
  <div class="container d-flex align-items-center" style="max-width:760px">
150
- <span class="brand me-3"><span class="accent">⚡ Volt</span></span>
150
+ <span class="brand me-3"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Volt</span></span>
151
151
  ${TABS.map(([key, label]) => html`<button class=${() => "btn btn-link btn-sm " + (section() === key ? "active" : "")} onclick=${() => section(key)}>${label}</button>`)}
152
152
  <span class="ms-auto small text-muted">${() => (me() ? shortName(me()) : "guest")}</span>
153
153
  </div>
@@ -251,6 +251,8 @@ function startSetup() {
251
251
  const assets = {
252
252
  "/setup.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "setup", "setup.js"))],
253
253
  "/volt.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "public", "volt.js"))],
254
+ "/logo.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "logo.webp"))],
255
+ "/favicon.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "favicon.webp"))],
254
256
  };
255
257
  const indexHtml = fs.readFileSync(path.join(__dirname, "setup", "index.html"));
256
258
 
@@ -407,6 +409,8 @@ async function startStudio() {
407
409
  const visible = (n) => n && !HIDDEN_COLLECTIONS.has(n);
408
410
  const assets = {
409
411
  "/volt.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(__dirname, "public", "volt.js"))],
412
+ "/logo.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "logo.webp"))],
413
+ "/favicon.webp": ["image/webp", fs.readFileSync(path.join(__dirname, "public", "favicon.webp"))],
410
414
  "/db-admin-ui.js": ["text/javascript; charset=utf-8", fs.readFileSync(path.join(ADDONS_DIR, "db", "files", "public", "db-admin-ui.js"))],
411
415
  };
412
416
  const studioHtml = fs.readFileSync(path.join(__dirname, "setup", "studio.html"));
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Set up your Volt app</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>
@@ -17,7 +18,7 @@
17
18
  <body>
18
19
  <main class="container py-5" style="max-width: 640px;">
19
20
  <header class="mb-4">
20
- <h1 class="h3"><span class="accent">⚡ Set up your Volt app</span></h1>
21
+ <h1 class="h3"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Set up your Volt app</span></h1>
21
22
  <p class="text-muted mb-0">Fill these in and the app starts. This page is disposable — it disappears once you click Apply. Re-open it anytime with <code>npm run dev -- --edit</code>.</p>
22
23
  </header>
23
24
  <div id="app"></div>
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Volt Studio</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>
@@ -14,7 +15,7 @@
14
15
  <body>
15
16
  <main class="container py-5" style="max-width: 820px;">
16
17
  <header class="mb-4">
17
- <h1 class="h3"><span class="accent">⚡ Volt Studio</span> <small class="text-muted">data browser</small></h1>
18
+ <h1 class="h3"><span class="accent"><img src="/logo.webp" alt="" style="height:1em;vertical-align:-.15em" /> Volt Studio</span> <small class="text-muted">data browser</small></h1>
18
19
  <p class="text-muted mb-0">Browse the database in your <code>.env</code>. Disposable &amp; localhost-only — close the terminal when done.</p>
19
20
  </header>
20
21
  <div id="app"></div>
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="icon" href="/favicon.webp" />
6
7
  <title>Volt starter</title>
7
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
8
9
  <style>