diff --git a/tools/public/assets/fp/index.html b/tools/public/assets/fp/index.html
index 5d54658..8309c00 100644
--- a/tools/public/assets/fp/index.html
+++ b/tools/public/assets/fp/index.html
@@ -15,7 +15,7 @@
-
+
diff --git a/tools/public/assets/style.css b/tools/public/assets/style.css
index 3d54d35..e270c6a 100644
--- a/tools/public/assets/style.css
+++ b/tools/public/assets/style.css
@@ -6,6 +6,7 @@
[v-cloak] { display: none; }
a { text-decoration: none; }
+html { background: var(--cds-background, #161616); }
body.app {
font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: var(--cds-background, #f4f4f4);
@@ -59,7 +60,7 @@ cds-side-nav[expanded] { pointer-events: auto; }
main.container { flex: 1 0 auto; padding-top: 1.5rem; padding-bottom: 1.5rem; }
.narrow { max-width: 560px; }
.center-v { display: flex; flex-direction: column; justify-content: center; min-height: 70vh; }
-.page-head { margin: 1.5rem auto 1.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
+.page-head { margin: 2.75rem auto 1.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.page-head h1 { font-size: 1.5rem; font-weight: 600; margin: 0; letter-spacing: 0; }
.page-head .sub { color: var(--cds-text-secondary, #525252); margin: 0.25rem 0 0; font-size: 14px; }
@@ -73,7 +74,7 @@ main.container { flex: 1 0 auto; padding-top: 1.5rem; padding-bottom: 1.5rem; }
.panel-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; flex-wrap: wrap; }
.step-chip {
width: 22px; height: 22px; border-radius: 2px; flex: 0 0 auto;
- background: var(--cds-layer-selected-inverse, #161616); color: #f4f4f4;
+ background: var(--cds-button-primary, #0f62fe); color: #fff;
font-size: 12px; font-weight: 600;
display: inline-flex; align-items: center; justify-content: center;
}
@@ -93,7 +94,7 @@ main.container { flex: 1 0 auto; padding-top: 1.5rem; padding-bottom: 1.5rem; }
.tool-icon {
width: 40px; height: 40px; border-radius: 4px; margin: 0;
display: inline-flex; align-items: center; justify-content: center;
- background: var(--cds-layer-selected-inverse, #161616); color: #fff;
+ background: var(--cds-button-primary, #0f62fe); color: #fff;
}
.tool-icon svg { width: 20px; height: 20px; }
.tool-card .go { margin-top: auto; color: var(--cds-link, #0f62fe); font-weight: 600; font-size: 13px; display: inline-flex; align-items: center; gap: 0.3rem; }
diff --git a/tools/public/index.html b/tools/public/index.html
index 1c5d306..6421e3f 100644
--- a/tools/public/index.html
+++ b/tools/public/index.html
@@ -15,7 +15,7 @@
cds-tile:not(:defined), cds-clickable-tile:not(:defined) { visibility: hidden; }
-
+
diff --git a/tools/server.js b/tools/server.js
index f93fa14..a0497a4 100644
--- a/tools/server.js
+++ b/tools/server.js
@@ -74,7 +74,7 @@ function errorPage(res, status, title, message, actions = {}) {
${esc(title)} ยท YOUreka Tools
-
+
${appHeader(null, null)}
diff --git a/tools/test/server.test.js b/tools/test/server.test.js
index 1a9f909..9bc67f2 100644
--- a/tools/test/server.test.js
+++ b/tools/test/server.test.js
@@ -312,6 +312,22 @@ test('injected session values cannot break out of the script tag', async () => {
}
});
+test('all pages render on the g100 dark theme', async () => {
+ const { base, stop } = await bootApp();
+ try {
+ const cookies = await login(base);
+ for (const path of ['/', '/fingerprint']) {
+ const html = await (await fetch(`${base}${path}`, { headers: { cookie: cookies } })).text();
+ assert.match(html, //, `${path} uses g100`);
+ }
+ // error pages too
+ const errorHtml = await (await fetch(`${base}/auth/callback?sessionId=nope`, manual)).text();
+ assert.match(errorHtml, //);
+ } finally {
+ await stop();
+ }
+});
+
test('landing header is server-rendered for the session', async () => {
const { base, stop } = await bootApp();
try {