Skip to content

Commit 61e05b1

Browse files
salim4nclaude
andcommitted
fix(web): flame favicon everywhere + clean root metadata
The tab icon was the default Cruip Stellar favicon.ico, and the root layout's metadata still said "Create Next App / Generated by create next app". Both visible on 404s and in browser history. Fixes: - app/icon.svg: flame SVG with indigo gradient (same source as the landing header logo). Next.js app router file-based convention auto-wires it as the favicon for every /app/ route — landing, /docs, 404 page, everything under Next.js. - public/favicon.svg: same file, accessible at /favicon.svg for non-Next pages (the Vite demos). - 6 demo index.html files: added <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> inside <head>. Since Vercel serves everything from one origin, the absolute path resolves to Next's public/favicon.svg. - Removed the leftover Cruip public/favicon.ico. - app/layout.tsx: replaced the generic "Create Next App" metadata with a proper title template ("%s — IgnitionAI") + real description. The `template` field means per-page titles like "DQN — Deep Q-Network" become "DQN — Deep Q-Network — IgnitionAI" in the tab. Build output now shows /icon.svg as a prerendered static route, confirming Next picked up the file-based icon. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 74abd56 commit 61e05b1

10 files changed

Lines changed: 138 additions & 5 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>IgnitionAI — Car Circuit</title></head>
3+
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="icon" type="image/svg+xml" href="/favicon.svg" /><title>IgnitionAI — Car Circuit</title></head>
44
<body><div id="root"></div><script type="module" src="main.tsx"></script></body>
55
</html>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>IgnitionAI — CartPole 3D</title></head>
3+
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="icon" type="image/svg+xml" href="/favicon.svg" /><title>IgnitionAI — CartPole 3D</title></head>
44
<body><div id="root"></div><script type="module" src="main.tsx"></script></body>
55
</html>

packages/demo-cartpole/src/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
67
<title>IgnitionAI — CartPole Demo</title>
78
</head>
89
<body>

packages/demo-drone-navigation/src/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
67
<title>IgnitionAI — Drone Navigation</title>
78
</head>
89
<body>

packages/demo-gridworld/src/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
67
<title>IgnitionAI — GridWorld Demo</title>
78
</head>
89
<body>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>IgnitionAI — MountainCar Demo</title></head>
3+
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="icon" type="image/svg+xml" href="/favicon.svg" /><title>IgnitionAI — MountainCar Demo</title></head>
44
<body><div id="root"></div><script type="module" src="main.tsx"></script></body>
55
</html>

packages/web/app/icon.svg

Lines changed: 63 additions & 0 deletions
Loading

packages/web/app/layout.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@ const inter = Inter({
99
})
1010

1111
export const metadata = {
12-
title: 'Create Next App',
13-
description: 'Generated by create next app',
12+
title: {
13+
default: 'IgnitionAI — Train RL agents in your browser',
14+
template: '%s — IgnitionAI',
15+
},
16+
description:
17+
'The ML-Agents of the JavaScript creative ecosystem. Train reinforcement learning agents directly in the browser. Deploy anywhere via ONNX.',
1418
}
1519

1620
export default function RootLayout({

packages/web/public/favicon.ico

-25.3 KB
Binary file not shown.

packages/web/public/favicon.svg

Lines changed: 63 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)