openvibers/openvibe.tools Commits
Family pages' "Open …" button (.cta) is --on-accent-strong on --accent-strong (openvibe-shared 1.13.0 tokens, 4.5:1 in every theme) instead of white on --accent (3.67:1, axe color-contrast serious on /network-tools, /developer-tools, /image-tools; found by the browser check, WS-Q task 3)
Changes
@@@ -70,7 +70,7 @@ section{padding:clamp(24px,4vw,44px) 0 0}.crumbs{font-size:13.5px;color:var(--text-muted,#7d8aa0);padding-top:18px}.crumbs a{color:inherit}.page-h{display:flex;gap:16px;align-items:center;padding:14px 0 4px}.page-h h1{font-size:clamp(26px,4vw,40px);letter-spacing:-.03em;margin:0;line-height:1.1}.lead{font-size:clamp(15px,1.5vw,18px);color:var(--text-secondary,#a8b3c4);max-width:820px}--.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent,#3b82f6);color:var(--on-accent,#fff);font-weight:700;text-decoration:none;padding:12px 20px;border-radius:12px;margin:6px 0}++.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent-strong,#1d4ed8);color:var(--on-accent-strong,#fff);font-weight:700;text-decoration:none;padding:12px 20px;border-radius:12px;margin:6px 0}.hosts{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px;max-width:640px}.hosts li{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--border,rgba(255,255,255,.08));border-radius:10px;flex-wrap:wrap}.hosts li.primary{border-color:var(--accent,#3b82f6);background:var(--accent-glow,rgba(59,130,246,.1))}@@@ -1,7 +1,7 @@'use strict';// /developers (the Tools API page): its long commands scroll inside their blocks instead of widening the page// (the browser check, Host scripts/browser-check.js, found the page 858 px wide at 768 px), and a block that--// scrolls can be reached by keyboard.++// scrolls can be reached by keyboard. The shared page CSS also carries the family pages' call-to-action.const assert = require('assert');const http = require('http');const express = require('express');@@@ -20,6 +20,9 @@ const site = require('../server/pages/site');const pres = html.match(/<pre[^>]*>/g) || [];assert.ok(pres.length >= 1, 'the page shows commands');assert.ok(pres.every((p) => p === '<pre tabindex="0">'), 'every block is focusable');++ // The family pages' "Open …" button: --on-accent-strong on --accent-strong (4.5:1 in every theme), not++ // white on --accent (3.67:1, axe color-contrast on /network-tools, /developer-tools, /image-tools).++ assert.ok(html.includes('.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent-strong,#1d4ed8);color:var(--on-accent-strong,#fff);'));console.log('developers page: all checks passed');} finally { srv.close(); }})().catch((e) => { console.error(e); process.exit(1); });
@@ -70,7 +70,7 @@ section{padding:clamp(24px,4vw,44px) 0 0}
@@ -70,7 +70,7 @@ section{padding:clamp(24px,4vw,44px) 0 0}
.crumbs{font-size:13.5px;color:var(--text-muted,#7d8aa0);padding-top:18px}.crumbs a{color:inherit}
.crumbs{font-size:13.5px;color:var(--text-muted,#7d8aa0);padding-top:18px}.crumbs a{color:inherit}
.page-h{display:flex;gap:16px;align-items:center;padding:14px 0 4px}.page-h h1{font-size:clamp(26px,4vw,40px);letter-spacing:-.03em;margin:0;line-height:1.1}
.page-h{display:flex;gap:16px;align-items:center;padding:14px 0 4px}.page-h h1{font-size:clamp(26px,4vw,40px);letter-spacing:-.03em;margin:0;line-height:1.1}
.lead{font-size:clamp(15px,1.5vw,18px);color:var(--text-secondary,#a8b3c4);max-width:820px}
.lead{font-size:clamp(15px,1.5vw,18px);color:var(--text-secondary,#a8b3c4);max-width:820px}
-.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent,#3b82f6);color:var(--on-accent,#fff);font-weight:700;text-decoration:none;padding:12px 20px;border-radius:12px;margin:6px 0}
+.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent-strong,#1d4ed8);color:var(--on-accent-strong,#fff);font-weight:700;text-decoration:none;padding:12px 20px;border-radius:12px;margin:6px 0}
.hosts{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px;max-width:640px}
.hosts{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px;max-width:640px}
.hosts li{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--border,rgba(255,255,255,.08));border-radius:10px;flex-wrap:wrap}
.hosts li{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--border,rgba(255,255,255,.08));border-radius:10px;flex-wrap:wrap}
.hosts li.primary{border-color:var(--accent,#3b82f6);background:var(--accent-glow,rgba(59,130,246,.1))}
.hosts li.primary{border-color:var(--accent,#3b82f6);background:var(--accent-glow,rgba(59,130,246,.1))}
@@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
'use strict';
'use strict';
// /developers (the Tools API page): its long commands scroll inside their blocks instead of widening the page
// /developers (the Tools API page): its long commands scroll inside their blocks instead of widening the page
// (the browser check, Host scripts/browser-check.js, found the page 858 px wide at 768 px), and a block that
// (the browser check, Host scripts/browser-check.js, found the page 858 px wide at 768 px), and a block that
-// scrolls can be reached by keyboard.
+// scrolls can be reached by keyboard. The shared page CSS also carries the family pages' call-to-action.
const assert = require('assert');
const assert = require('assert');
const http = require('http');
const http = require('http');
const express = require('express');
const express = require('express');
@@ -20,6 +20,9 @@ const site = require('../server/pages/site');
@@ -20,6 +20,9 @@ const site = require('../server/pages/site');
const pres = html.match(/<pre[^>]*>/g) || [];
const pres = html.match(/<pre[^>]*>/g) || [];
assert.ok(pres.length >= 1, 'the page shows commands');
assert.ok(pres.length >= 1, 'the page shows commands');
assert.ok(pres.every((p) => p === '<pre tabindex="0">'), 'every block is focusable');
assert.ok(pres.every((p) => p === '<pre tabindex="0">'), 'every block is focusable');
+ // The family pages' "Open …" button: --on-accent-strong on --accent-strong (4.5:1 in every theme), not
+ // white on --accent (3.67:1, axe color-contrast on /network-tools, /developer-tools, /image-tools).
+ assert.ok(html.includes('.cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent-strong,#1d4ed8);color:var(--on-accent-strong,#fff);'));
console.log('developers page: all checks passed');
console.log('developers page: all checks passed');
} finally { srv.close(); }
} finally { srv.close(); }
})().catch((e) => { console.error(e); process.exit(1); });
})().catch((e) => { console.error(e); process.exit(1); });